E D R , A S I H C RSS

Full text search for "Error 발생시 풀리지 않을 경우 확인"

Error%20%EB%B0%9C%EC%83%9D%EC%8B%9C%20%ED%92%80%EB%A6%AC%EC%A7%80%20%EC%95%8A%EC%9D%84%20%EA%B2%BD%EC%9A%B0%20%ED%99%95%EC%9D%B8


Search BackLinks only
Display context of search results
Case-sensitive searching
  • EffectiveC++ . . . . 82 matches
          매크로는 말 그대로 치환이기 때문에 버그 발생할 확률이 높음. 상수선언이나 함수선언같은 경우는 가급적 const 나 inline으로 대체하는게 좋겠지. (으.. 그래도 실제로 짤때는 상수 선언할때는 #define 남용 경향이..[[BR]]
         그러나, 나중에 이렇게 만든 클래스를 누군가가 개선될경우 그리고, 개선된 클래스에서 포인터 멤버를 추가하게[[BR]]
          * ''Deletion of the existing memory and assignment of new memory in the assignment operator. - 포인터 멤버에 다시 메모리를 할당할 경우 기존의 메모리 해제와 새로운 메모리의 할당''
         메모리가 부족할경우 적절한 처리를 해준다는 얘기인것 같은데... [[BR]]
         // 연산자 new가 충분한 메모리를 할당하지 못할 경우 호출될 함수
         그런데, 이 클래스를 위해 만들어진 operator new 연산자가 상속될 경우. [[BR]]
         이 연산자도 역시 상속될 경우 약간 골치아픈가? [[BR]]
         void specialErrorHandler(); // definition is elsewhere
         X *px1 = new (specialErrorHandler) X; // calls X::operator new
         X *px2 = new X; // error!, "정상 form에 대해 호환이 이루어 지지않는 문제점."
          new (specialErrorHandler) X; // calls X::operator
         X *px1 = new (specialErrorHandler) X; // ok
         DeleteMe 그런 의미보다 String 이나, linked list 혹은 기타 여러 기타 데이터 형으로 많은 수의 할당을 통해서 쓸수 있는 인자의 경우에는 사용자 정의 new를 이용하여 가능하면 공용 메모리 공간에서 활동시켜서, 메모리 할당 코드를 줄이고 (메모리 할당의 new와 alloc는 성능에 많은 영향을 미칩니다.) 메모리를 줄이고 효율적 관리를 할수 있다는 의미 같습니다. 그런 데이터 형으로 쓰이는 인자가 아닌 한 app안에서 단 한번만 사용되는 클래스라면 구지 new를 성의해서 memory leak의 위험성을 증가 시키는 것보다, 일반적인 new와 생성자 파괴자의 규칙을 쓰는것이 좋을겁니다. --상민
         이 class에는 치환 연산자나 복사 생성자가 없다. 이런 클래스는 좋지 못한 결과를 발생시킨다. [[BR]]
          // 삭제 하게 된다. 결과 적으로 a와 c가 가리키던 곳이 두번 삭제 되는 경우가 발생된다. (a가 소멸할때, c가 소멸할때)
         '' * 클래스 안에 포인터를 조물딱 거리는 멤버 변수가 있을 경우에는 그 클래스에 복사 생성자와, 치환 연산자를 꼭 정의해 주어야 한다...''
          * 가능한 경우 항상 멤버 초기화 리스트를 사용하는 습관을 들이면, const와 레퍼런스 변수들에 대한[[BR]]요구 조건을 채울 수 있을 뿐만 아니라, 멤버 변수들에 대한 비효율적인 초기화도 줄일수 있다.''
         베이스 클래스의 소멸자를 ["가상함수"]로 둔다는 얘기는 베이스 클래스가 계승 될경우 계승된 클래스에내에서 소멸자의 [[BR]]
         삭제하려고 하며, 베이스 클래스는 가상 소멸자를 가지고 있지 않은 경우. 그 결과는 정의되어 있지 않다. 이것은 컴파일러로 [[BR]]
         기본 형식을 갖는 치환 연산자에서, 리턴값으로 사용할 수 있는 두 가지 경우가 있다. 치환의 왼쪽 부분 (this)과 치환의 오른쪽 부분(인자 리스트에 있는것)이다. 어떤것을 리턴해 줄것인가? operator=과 관련된 밑의 두가지 경우를 보자.
  • ProjectPrometheus/Journey . . . . 43 matches
          * 한동안 PairProgramming 할때 주로 관찰자 입장에 있어서인지. (이상하게도. 창준이형이랑 할때나 상민이랑 할때나. 그나마 저번 르네상스 클럽때는 아무도 주도적으로 안잡아서 그냥 내가 잡긴 했지만, 다른 사람들이 적극적으로 나서지 않을때엔 웬지 그 사람들과 같이 해야 한다는 강박관념이 있어서.)
         그동안의 Pair 경험에 의하면, 가장 Pair 가 잘 되기 어려운 때는, 의외로 너무 서로를 잘 알고 Pair를 잘 알고 있는 사람들인 경우인것 같다는. -_-; (Pair 가 잘 안되고 있다고 할때 소위 '이벤트성 처방전'을 써먹기가 뭐하니까. 5분 Pair를 하자고 하면 그 의도를 너무 쉽게 알고 있기에.) 잘 아는 사람들과는 주로 관찰자 입장이 되는데, 잘 아는 사람일수록 오히려 개인적으로 생각하는 룰들을 잘 적용하지 않게 된다. (하는 일들에 대한 Tracking 이라던지, 다른 사람이 먼저 Coding 을 하는중 이해 못할때 질문을 한다던지 등등. 차라리 그냥 '저사람 코딩 잘 되가나본데..'. 오히려 예전에 '문제'라고 생각하지 않았던 부분이 요새 '문제' 로 다가 온다.)
         그렇다고 이 상황을 다른 사람에게 말로 하면 당연히 '응. 그래. 다음번에는 주도적으로 잡아' 라고 하지만. 한동안 손가락이 쉽게 가지 않을 것 같다. 개인적인 문제일까. 아직 현상에 대한 분석이 잘 안되는중이다.
          * 서블릿 레이어부분에 대해서 Controller 에 Logic 이 붙는 경우 어떻게 Test 를 붙일까. (FacadePattern 을 생각하고, 웹 Tier 를 따로 분리하는 생각을 해보게 된다.) --["1002"]
         1002 개인적으로 진행. 뭐 진행이라기 보다는, 오랜만에 Solo Programming 을 해봤다. 장점으로는 느긋하게 소스를 리뷰하고 대처할 시간을 천천히 생각해볼 수 있던점. (보통은 상민이가 이해를 빨리 하기 때문에 먼저 키보드를 잡는다.) 단점으로는 해결책에 대한 Feedback 을 구할 곳이 없다는 점이 있다. (평소 물어보고 둘이 괜찮겠다 했을때 구현을 하면 되었는데, 이경우에는 책임 소재랄까.. 웬지 혼자서 생각한 것은 의외의 틀린 답이 있을 것 같은 불안감이 생긴다. 테스트 중독증 이후 이젠 페어 중독증이려나..)
         어제 마지막 고민이 지하철을 타고가면서 해결되었다. 그리고 오늘 와서 생각대로 적용하니 이후 Test들에서는 아무런 문제가 발생하지 않아서 안도의 한숨을 내쉰다. 시스템들이 Test를 통과하자, 가장 큰 문제로 발생된 것이 Test의 작성과 확인이었다. 책 4권과 사용자 3명.. 정말 머리에서 피시식 연기가 나는 느낌을 받는다. 그나마 Pair이기에 한명이 코드를 보면서 생각하고, 한명은 종이를 보면서 생각하면서 동기화를 시키니 다행이지, 혼자였다면 후유.. 문뜩 온라인 게임들이 굉장히 긴 시간동안 베타 테스트를 하는 것이 이해가 간다. --["상민"]
          * Side Effect 는 Refactoring 의 적이라는 생각이 오늘처럼 든 적이 없었다. -_-; Extract Method 같은 일을 하는 경우 더더욱.! --["1002"]
          어차피 AcceptanceTest 관련 코드의 경우 Server 프로그램과 독립적으로 돌아가기에 그리 걱정하지 않아도 상관없을듯. 소스는 CVS에 올려놓고 있으니 시간있을때 확인하셔도 좋을듯. --["1002"]
         결과물이 눈에 보인다는 것은 즐거운 것이다. 물론 구현중에 Test결과들이 눈에 보이는 것도 즐겁고 안정감 있는 코딩을 할수 있는 요인으로 제공되어서 좋왔지만, 이제 리스트가 보이고, 책을 보는 것까지 되니 여태까지의 결과들이 통합되는 것을 눈으로 확인 하는것 같아서 좋다. 통합시에 그리 큰문제는 현재까지 발생하지 않았다. --["상민"]
          * Pair 중간에 ["1002"] 는 목소리가 커질때가 있다. 하나는, 내가 놓치고 있을 경우에 대해 다른 사람이 이야기를 제대로 안해줬다고 생각되는 경우. 뭐 보통은 ["1002"]의 잘못을 다른 사람에게 떠넘기기 위한 방편인 경우가 많다 -_-; (찔린다; 나도 JuNe 형이랑 Pair 할때 무방비상태인 경우가 많아서;) 뭐, 같이 무방비였다가 못느끼고 넘어간 경우라면 아하~ 하면서 플밍하겠지만, 하나를 고치고 나서, 다른 사람이 당연한 듯이 좋은 방법으로 해결해낼때엔. ("왜 아까는 이야기안해?" "당연한거잖나."). 일종의 경쟁심리이려나. 에고 를 잊어야 하는게 PairProgramming 이지만, 사람 마음이 그렇기엔 또 다른것 같다. 코드 기여도에 대해서 보이지 않는 경쟁이 붙는다고 할까나.
         문제는, ["1002"] 의 목소리가 화내는 톤이 될 경우이다. (의도하건 안하건. 보통 화내는 사람은 자신이 화내고 있다는 것을 의식하지 않은 경우가 많다. 이 경우의 문제는, 열심히 잘한 상대가 쓸데없이 들을 필요없는 소릴 듣는다. --; 아. 정신 수양이 필요하다. (지가 잘했으면 될거면서..;)
          * 내목소리가 커질경우에는 다른 사람이 위축이 된다. 그 사람이 잘하고 있다 하더라도. 한편으로는 '당신의 능력을 보여주세요'; 자신의 코드에 대해서 자기 이야기를 했으면 하는 생각. 목소리를 줄이거나, '한번 흘러갈대로 해봐라' 라는 식은 자신의 생각을 코드에 붙일 수 없게 되므로 좋지 않은 경우라고 생각.
          * Martin Fowler 의 PatternsOfEnterpriseApplicationArchitecture 를 읽어보는중. 우리 시스템의 경우 DataMapper 의 개념과 Gateway 의 개념을 적용해볼 수 있을 것 같다. 전자는 Data Object 를 얻어내는데에 대해 일종의 MediatorPattern 을 적용함. DB 부분과 소켓으로부터 데이터를 얻어올 때 이용할 수 있을 것 같다. 후자의 경우는 일반적으로 Object - RDB Data Mapping (또는 다른 OO 개념이 아닌 데이터들) 인데, RowDataGateway, TableDataGateway 의 경우를 이용할 수 있을것 같다.
          * STL 을 쓰면 편리하긴 한데, 확실히 학교컴퓨터에선 컴파일이 느리긴 한것 같다는; (하긴, 우리가 map 에 vector 겹친 형태로 작성을 했으니 -_-..) 그래도 STL Container 만 어느정도 이용해도 기존의 순수 C++ 을 이용할 때보다 훨씬 편하다는 점이 즐겁다. 만일 mock object 를 STL 이나 MFC Collection 없이 구현한다고 생각한다면? 그리 상상하고 싶지 않을 정도이다. (특히 DB에선) 그러면서 느끼는점이라면,
          * 예전에 일할때 잘못했었던 실수를 다시하고 있으니, 바로 기획자와의 대화이다. Iteration 이 끝날때마다 개발자가 먼저 기획자 또는 고객에게 진행상황을 이야기해야 한다. 특히 ExtremeProgramming 의 경우 Iteration 이 끝날때마다 Story 진행도에 대화를 해야 한다. Iteration 3 가 넘어가고 있지만 항상 먼저 전화를 한 사람이 누구인가라고 묻는다면 할말이 없어진다. 이번 Iteration 만큼은 먼저 전화하자;
          * AcceptanceTest 가 작성되고 나면서부터는 매일 AcceptanceTest 를 돌려서 연기가 나는지(?) 확인해본다. (M$에서의 테스팅처럼..) 매일 AcceptanceTest 를 돌려봄으로서 앞전의 작업에 대해서 그 결과에 대한 보장을 해둔다.
         ["Jython"] 의 편리함을 깨닫았다. Java 의 클래스들에 대해서 바로 Import 하여서 쓸 수 있다. 그리고 ["Python"] 에 있는 라이브러리들을 거의 그대로 이용할 수 있다. 단, 한글 문제로 걸림. AcceptanceTest 의 경우 ["Python"] 으로 작성함.
          똑같은 코드를 ["Jython"] 으로 돌릴 경우 POST 로 넘긴 한글 keyword 가 제대로 넘어가질 않아요. 인코딩을 바꿔주면 될 것 같은데 못찾아서;--["1002"]
          * ''돌아가는 환경의 기본 인코딩을 설정해주면 될 듯 함. Jython이 자바로된 클래스를 바로 쓴다니, Writer 객체를 얻을때 인코딩 설정을 해주면, 해당 Writer로 빠져나가는 내용은 설정된 인코딩을 적용받음. 받아들일때도 마찬가지로, POST로 넘어온 값을 매번 인코딩 할수도 있겠지만, 그보다는, 시스템에 직접 명시해줘서 일괄적으로 바뀌는 방식을 추천함. 예를들자면, contentType="text/html; charset=euc-kr" 하는식으로 설정할 경우, 얻어오는 값들은 euc-kr로 인코딩된 값을 얻어올 수 있음. --이선우''
         CRC가 잘 추출되지 않을때는 차라리 UserStory를 따라가면서 클래스를 만들고, 거기에서 다시 CRC를 생각해 보는 방법이 시간 절약에 현명할 것이라고 생각된다. 객체 지향 의 프로그래밍을 추구해온 결과, Scenario나, UserStory를 따라가며 코딩하면서 수많은 클래스들이 책임에 따라서 생겨나는 것을 보면서 자연 스러움과, 약간 의아함 마져 들었다.
  • MoreEffectiveC++/Techniques2of3 . . . . 38 matches
         생성자의 손쉬운 구현같이 파괴자 구현도 그리 어려운 일이 아니다. StringValue의 파괴는, 서로가 최대한 사용하고, 값이 파괴 시점은 참조 카운터가(reference counter:이하 참조 카운터만) 1인 경우 더이상 사용하는 객체가 없으므로 파괴하도록 구성한다.
         const String에 대한 값을 주는 것은 아래와 같이 간단히 해결된다. 내부 값이 아무런 영향을 받을 것이 없을 경우이기 떄문이다.
          if (value->refCount > 1) { // if 안쪽은 새로운 객체를 생성해야 할 경우
         이런것을 해결할수 있는 방법으로는 최소한 세가지를 생각할수 있는데, '''첫번째'''는 이것을 없는걸로 취급하고, 무시 해 버리는 것이다. 이러한 접근 방향은 참조 세기가 적용되어 있는 클래스 라이브러리에 상당한 괴로움을 덜어 주는것이다. 하지만 이러한 문제를 구현상에서 완전히 무시할수는 없는 노릇이다. '''두번째'''로 생각할수 있는 방법은 이러한것을 하지 말도록 명시하는 것인데, 역시나 복잡하다. '''세번째'''로, 뭐 결국 제거야만 할것이다. 이러한 분제의 제거는 그리 어렵지는 않다. 문제는 효율이다. 이런 중복에 관련한 문제를 제거하기 위해서는, 새로운 자료 구조를 만들어 내야하고, 이것의 의미는 객체간에 서로 공유하는 자료가 줄어 든다는 의미이다. 즉, 비용이 많이 들어간다. 하지만 어쩔수 없지 않을까?
          if (rhs.value->shareable) { // 공유를 허락할 경우
          else { // 공유를 거부할 경우
         참조세기는 단지 string의 경우에만 유용한걸까? 다른 객체 역시 참조세기를 적용해서 사용할수는 없을까? 생각해 보면 참조세기를 구현하기 위해서는 지금까지의 언급의 기능을 묶어서 재사용 가능하게 만들면 좋을것 같은데, 한번 만들어 보도록 하자.
         이번 주제의 nested class의 모습을 보면 그리 좋와 보이지는 않을 것이다.처음에는 생소하겠지만, 이러한 방버은 정당한 것이다. nested클래스의 방법은 수많은 클래스의 종류중 단지 하나 뿐이다. 이것을 특별히 취급하지는 말아라.
         RCObject는 참조 카운터를 보관하고, 카운터의 증감을 해당 클래스의 멤버 함수로 지원한다. 하지만 이건 유도되는 다른 클래스에 의하여, 손수 코딩이 되어야 한다. 즉, 위의 경우라면, StirngValue 클래스에서 addReference, removeReference 를 호출하면서, 일일이 코딩해 주어야 한다. 이것은 재사용 클래스로서 보기 않좋은데, 이것을 어떻게 자동화 할수는 없을까? C++는 이런 재사용을 지원할수 있을까.
         공통된 코드를 init()으로 묶었는데, 이런 경우 정확히 동작하지 않을수 있다. init함수가 새로운 복사본을 필요로 할때가 그것인데, 공유를 허용하지 않을 경우에 복사하는 바로 이부분,
         일단 우리는 String에 RCPtr<StingValue> 포인터로 SpecialStringValue 객체를 가리키는 상태로 만들어서 포함시킬수 있다. 이러한 경우에 우리가 원하는 init가 되지 않는다.
         즉, SepcialStringValue의 복사 생성자를 부르길 원하는데, StringValue의 복사 생성자가 불린다. 우리는 이러한 것을 가상 복사 생성자를 써서 (Item 25 참고) 할수 있다. 하지만, 이것은 디자인때 의도한 것이 아니기 때문에, 이러한 경우에 대해서는 납득할수가 없다.
         이제, 생성자에 관한 내용을 벗어나, 할당(assignment) 연산자에 관한 내용을 다룬다. 할당 경우도 공유의 경우를 생각해야 하기 때문에 까다롭게 될수 있는데, 다행스럽게 이미 그러한 과정은 init에 공통적으로 들어 있기 때문에 코드가 간단해 진다.
          init(); // 공유가 불가능 할경우는 자료를
         이 String클래스를 위한 코드와, 그냥 더미(dumb)포인터를 사용한 클래스(처음에 참조세기 구현한것)와는 두가지의 큰 차이점이 있다. '''첫번째'''로 이 클래스의 코드가 굉장히 적다는 점이다. 이유는, RCPtr이 참조세는 작업을 모두 맡아서 이다. '''두번째'''로는 스마트 포인터로 교체했지만, String의 코드가 거의 유지된다는 점이다. 사실 변화는 operator[]에서만 공유의 경우를 체크하는 루틴 때문에 바뀌었다. 이렇게 스마트 포인터로서 손수 해야하는 작업들이 많이 줄어 든다.
         대단하지 않은가? 누가 객체를 사용하지 않을까? 누가 캡슐화를 반대할까? 하지만, 이러한 신기한 String 클래스에 관한 기반 생각은 클라이언트 측에서 새부사항을 알필요가 없어야 밑이 나는 것이다. 알아야 할것이 없을수록 더 좋은 상태이다. 현재, String을 쓰는 기본 인터페이스는 바뀐것이 없다. 단지 참조세기의 기능이 추가되었을 뿐이다. 그래서 클라이언트는 기존 코드를 고칠 필요가 없다. 단, 재 컴파일(recompile)과 재링크(relink) 과정만이 남아 있을 것이다. 이러한 비용은 참조세기가 주는 이득에 비하면 정말 완전히 없는 비용이나 마찬가지이다. 캡슐화는 정말 좋은거다. (작성자주:뭐야 이 결론은..)
          * '''적은 자료를 많은 객체들이 사용하고자 한다.''' 이러한 경우에는 생성자와 복사에 관한 비용이 많이 든다. 이런 경우 참조세기의 적용이 더 놓은 효율을 끌어 낼수 있을 것이다.
          * '''객체를 생성하고, 파괴하는데 높은 비용을 지불해야 하거나, 많은 메모를 사용한다.''' 이러한 경우 조차 참조세기는 많은 객체가 공유하면 할수록 비용을 줄여 줄것이다.
         보자마자 이 연산자의 의도를 알것이다. 하지만 operator[][]란건 선언할수가 없다. 그리고 당신의 컴파일러역시 이것을 감안하지 않을 것이다. (오버로드(overload)와 관련한 연산자들에 관한 정보는 Item 7을 참고하라) 우리는 그외의 다른 방안을 찾아야 한다.
         이러한 상태, 즉 perator[]에서 lvalue와 rvalue를 구분해야만 한다. 왜냐하면 참조세기가 적용된 자료구조의 경우에 읽기는 쓰기에 비하여 훨씬 적은 비용을 소모하기 때문이다. Item 29에서 참조세기 객체의 쓰기는 아마 전체 자료구조의 복사를 유도하지만, 읽기는 간단한 값의 반환을 의미한다고 설명했다. 불행히도, operator[]의 내부에서, 이들의 호출 목적을 구분할 방법은 없다. operator[]는 lvalue와 rvalue의 쓰임의 차이를 구분할수 없다.
  • MoreEffectiveC++/Miscellany . . . . 35 matches
         이런 좋은 소프트웨어를 만들기 위한 방법으로, 주석이나, 기타 다른 문서 대신에 C++ 내부에 디자인으로 구속해 버리는 것이다. 예를들자면 '''만약 클래스가 결코 다른 클래스로 유도되지를 원치 않을때''', 단시 주석을 헤더 파일에 넣는 것이 아니라, 유도를 방지하기 위하여 C++의 문법을 이용한 기술로 구속 시킨다.;이에 대한 방법은 '''Item 26'''에 언급되었다. 만약 클래스가 '''모든 인스턴스를 Heap영역에 생성시키고자 할때''', 클라이언트에게 말(문서)로 전달하는 것이 아니라. '''Item 27'''과 같은 접근으로 제한 시켜 버릴 수 있다. 만약 클래스에 대하여 복사와 할당을 막을려고 할때는, 복사 생성자와 할당(assignment) 연산자를 사역(private)으로 만들어 버려라. C++은 훌륭한 힘과, 유연성, 표현성을 제공한다. 이러한 언어의 특징들을 당신의 프로그래밍에서 디자인의 정책을 위해서 사용하라.
         "변화한다.", 험난한 소프트웨어의 발전에 잘 견디는 클래스를 작성하라. (원문:Given that things will change, writeclasses that can withstand the rough-and-tumble world of software evolution.) "demand-paged"의 가상 함수를 피하라. 다른 이가 만들어 놓지 않으면, 너도 만들 방법이 없는 그런 경우를 피하라.(모호, 원문:Avoid "demand-paged" virtual functions, whereby you make no functions virtual unless somebody comes along and demands that you do it) 대신에 함수의 ''meaning''을 결정하고, 유도된 클래스에서 새롭게 정의할 것인지 판단하라. 그렇게 되면, 가상(virtual)으로 선언해라, 어떤 이라도 재정의 못할지라도 말이다. 그렇지 않다면, 비가상(nonvirtual)으로 선언해라, 그리고 차후에 그것을 바꾸어라 왜냐하면 그것은 다른사람을 편하게 하기 때문이다.;전체 클래스의 목적에서 변화를 유지하는지 확신을 해라.
         이식성 있는 코드를 만들어라. 이식성 있는 프로그램의 제작은 그렇지 않은 경우보다 매우 어려운게 아니다. 그리고 눈에 보일 만큼 성능면에서 이식성 없는 코드를 고집해야 하는 경우는 희귀하다.(Item 16참고) 특정한 하드웨어를 위한 프로그램의 디자인에서도, 얼마 안있어 하드웨어 성능이 동일한 수준의 성능을 가져다 주므로, 이식성 있도록 만들어라. 이식성 있는 코드의 작성은 플랫폼 간의 변환에 쉽고, 당신의 클라라이언트 기반을 공고히 하고, 오픈 시스템의 지원에 관하여 좋다. 만약, 한 OS에서 성능이 실패해도, 쉽게 복구할수 있다.
         당신의 코드를 변화가 필요할때, 그 효과를 지역화(지역화:localized) 시키도록 디자인 해라. 가능한한 캡슐화 하여라:구체적인 구현은 private 하라. 광범위하게 적용해야 할곳이 있다면 이름없는(unamed) namespace나, file-static객체 나 함수(Item 31참고)를 사용하라. 가상 기초 클래스가 주도하는 디자인은 피하라. 왜냐하면 그러한 클래스는 그들로 부터 유도된 모든 클래스가 초기화 해야만 한다. - 그들이 직접적으로 유도되지 않은 경우도(Item 4참고) if-than-else을 개단식으로 사용한 RTTI 기반의 디자인을 피하라.(Item 31참고) 항상 클래스의 계층은 변화한다. 각 코드들은 업데이트 되어야만 한다. 그리고 만약 하나를 읽어 버린다면, 당신의 컴파일러로 부터 아무런 warning를 받을수 없을 것이다.
         여기에서 B는 D의 기초 클래스이다. 다른 말로 하자면 이 작성자는 만약 다음과 같은 경우에 B는 가상 파괴자(virtual destroctor)가 필요 없어 보인다.
         확실히 vtbl 문제는 합법적인 접근이다. (Item 24참고) 대다수 String클래스의 구현에서 오직 하나의 char*를 각각의 String 객체가 가지고 있다. 그래서 각 String객체에 추가되는 vptr도 두배의 양을 차지한다. 허용하지 않으려는 이유는 이해하기 쉽다. String같은 클래스를 무겁게 사용하면 눈에 띠는 성능 저하가 있다. 앞서 언급한 경우 클래스당 성능 저하는 약 20%정도를 가지고 온다. (Item 16참고)
         당신이 동물의 역할을 하는 소프트웨어 프로젝트를 진행한다고 가정해라. 이 소프트웨어에서는 대부분의 동물들이 같게 취급될 수 있다. 그렇지만 두 종류의 동물들 -lizard(도마뱀) 와 chicken(닭)- 은 특별한 핸들링(handling)을 원한다. 그러한 경우에, 명백한 방법은 다음과 같이 관계를 만들어 버리는 것이다.
         '''두번째''' 문제는 진짜 프로그래머들이 이와 같은 코드를 쓴다는 것이다. 특별히 C++로 전향한 C프로그래머들에 경험에서 보면, 포인터를 통한 객체의 할당은 그리 흔하지 않은것도 아니다. 그러한 경우는 이성적인 생각으로 취한 할당같이 보인다. Item 32의 촛점중, 상속 관계 상에서 우리의 클래스는 정확히 사용하기 쉽고, 부정확하게 사용하기 어렵게 해야 한다고 언급했다.
         문제에 대한 한가지 접근으로 할당(assignment)연산자를 가상(virtual)로 선언하는 방법이 있다. 만약 Animal::operator= 가 가상(virtual)이면, 위의 경우에 할당 연산자는 정확한 Lizard 할당 연산자를 호출하려고 시도할 것이다. 그렇지만 만약 우리가 가상으로 할당 연산자를 선언했을때 다음을 봐라.
         이러한 경우에 형을 가리는 것은 오직 실행 시간 중에 할수 있다. 왜냐하면 어떤때는, *pAnimal2를 *pAnimal1에 유효한 할당임을 알아 내야하고, 어떤때는 아닌걸 증명해야 하기 때문이다. 그래서 우리는 형 기반(type-based)의 실행 시간 에러의 거친 세계로 들어가게 된다. 특별하게, 만약 mixed-type 할당을 만나면, operator= 내부에 에러 하나를 발생하는 것이 필요하다. 그렇지만 만약 type이 같으면 우리는 일반적인 생각에 따라서 할당을 수행하기를 원한다.
         예외 관한 주의가 필요 없는 보통의 경우에, 이 함수는 복잡하고, 비용 부담이 필요할 것으로 보인다.
         모든 일에 대하여 AbstractTnimal은 반드시 추상적이어야 하나? 그것은 반드시 최소 하나의 순수 가상 함수를 가지고 있어야 한다. 대부분의 경우에 알맞는 함수를 고르기에는 별 문제가 없다. 그렇지만 희귀한 경우에 당신은 아마 AbstractAnimal 같은 클래스를 만들어야 하는 상황에 직면할지도 모른다. 그러한 경우에, 적당한 방법은 순수 가상 함수로 파괴자를 만들어 버리는 것이다.;위에서 보는것과 같이 말이다.포인터를 통한 다형성을 지원하기 위하여 기본 클래스는 가상 파괴자를 어떤 방법으로든 필요로 한다. 그래서 순수 가상함수를 만들기 위한 비용만이 해당 클래스 정의부 바깥에서 이루어질 구현에서 지불된다. (에를들어서 p195를 보아라)
         맞다, 대부분의 순수 가상 함수는 결코 구현되지 않는다. 그렇지만 순수 가상 파괴자는 특별한 경우이다. 그들은 '''반드시''' 구현되어야 한다. 왜냐하면 그들은 유도된 클래스들이 파괴될때 마다 불리기 때문이다. 게다가 그들은 종종 유용한 작동을 하는데, 자원의 해제 같은거(Item 9참고)나 로그 메세지를 남기는것 따위 말이다. 순수 가상 함수의 구현은 일반적으로 아마 특별하지 않은 경우이다. 하지만 순수 가상 파괴자는 그렇지 하다 그것은 명령에 가깝다.)
         두가지 경우에 한가지는 당신의 데이터가 없는 concrete로 적용한다.:이건 미래에 데이터를 가질지도, 안가질지도 모른다. 만약 미래에 데이터를 가진다면, 당신이 하는 모든 것은 데이터 멤버가 추가도리때까지 문제를 미루어 두는 것이다. 이런 경우 당신은 잠깐의 편함과 오랜 시간의 고뇌를 맞바꾸는 것이다. (Item 32참고) 대안으로, 만약 기초 클래스가 정말 어떠한 데이터도 가지고 있지 않다면, 처음에 추상화 클래스와 아주 비슷한 이야기가 된다. concrete 기본 클래스는 데이터 없이 사용되는건 무엇인가?
         AbstractAnimal 같은 추상 기본 클래스를 Animal 같은 concrete 기본 클래스로의 교체는 operator= 의 동작을 도 쉽게 이해할수 있는 장점을 가져다 준다. 또한 당신이 배열을 다형하게 다루는 기회 역시 줄여준다.(배열과 클래스에 대한 관계는 Item 3을 참고하라.) 그렇지만, 기술적으로 가장 두드러지는 이점은 디자인 레벨에서 나타난다. 왜냐하면 당신은 유용한 추상의 존제를 명시적으로 인지 할수 있기 때문이다. 그것은 유용한 개념의 존재를 의식하지 않을지라도, 당신으로 하여금 새로운 유용한 개념을 위한 추상 클래스 생성하게 한다.
         이러한 변환 과정에서 처음의 값은 추상 추상 클래스 A 를 확인하게 만든다. C1과 C2는 아마 보통 몇가지를 가지고 있다.:그것은 그들이 public 상속이 되는 이유이다. 이 변환으로 당신은 반드시 그 가지고있는 어떻것을 확인해야 한다. 게다가 C++에서 클래스로 모호한 부분에 대하여 명확하게 해주어야 한다. 그것은 보통 추상화(abstraction)가 추구해야 하는 것이고 잘 정의된 멤버 함수와 확실한 문법으로 구현된다.
         이 모든것이 어떤 잘못된 생각으로 인도한다. 결국, 모든 클래스는 어떠한 종류의 추상화를 표현한다. 그래서 우리는 계층 관계에서 모든 개념을 위해서 두가지의 클래스를 생성할수가 없게 되지 않을가? 하나는 추상화로(추상화를 표현하는 부분 작성) 하나는 concrete로(객체 생성 부분 작성)? 아니다. 만약 당신이 그렇게 하면 당신은 굉장히 많은 클래스로 계층 관계를 만들 것이다. 그리고 컴파일에도 많은 비용을 소요한다. 그것은 객체 지향 디자인의 잘못된 목표이다.
         처음에 요구되는 개념은, 우리는 추상 클래스(개념을 위한)와 concrete 클래스(객체가 개념에 반응하기 위한) 양쪽다 정당화 시킬수 없다. 하지만 두번째로 필요한 개념은, 우리가 이 두 클래스의 생성을 정당화 할수 있다. 내가 간단하게 언급한 변환은 이러한 과정(process)를 공정화(mechanize) 하는 것이다. 그리고 비록 디자이너와 프로그래머들이 유용한 개념을 항상 의식을 가지고 생각하지 않을지라도, 그들에게 생각하는 유용한 추상화 과정을 명시적으로 보이도록 강제한다.
         일단, 오직 한종류의 프로토콜을 통하여 오직 한종류의 패킷만을 전송한다고 가정하자. 아마도 다른 프로토콜과 패킷의 존재를 알고 있을 것이다. 그렇지만 당신은 그들을 지원하지 않고, 미래에도 이들을 지원할 계획이 없을 것이다. 당신은 패킷에 대한 추상 클래스(패킷을 표현하는 개념을 위한)를 사용할 패킷의 concrete 클래스와 같이 만들것인가? 만약 그렇게 한다면 당신이 패킷의 기본 클래스의 변화 없이 차후에 새로운 패킷 형태를 추가하는 것을 바랄수 있다. 그것은 새로운 형태의 패킷이 추가될경우 패킷과 관련하여 재컴파일할 수고를 덜어 줄것이다. 그렇지만 그런 디자인은 두개의 클래스를 요구한다. 그리고 지금 당신에게는 하나만이 필요하다.(당신이 사용하는 패킷만을 표현하는 클래스) 없을지도 모르는 미래를 위한 확장을 위해서 당신의 디자인을 복잡하게 하는 것을 해야 할까?
         당신이 하려는 훌륭한 추상 패킷 클래스 디자인은 당신이 다양한 목적에 수많은 다른 패킷을 훌륭하게 만들어 보지 않고서는 할수 없다. 이번 경우에서 이런 제한된 경험을 제시하는 것은 나의 충고가 패킷에 대한 정의가 아니라, 추후 오직 concrete 패킷 클래스로 부터 상속의 필요성이 있을때에, 패킷의 추가를 용이하게 하기 위한 것이다.
  • MoreEffectiveC++/Techniques1of3 . . . . 34 matches
         자 지금까지 객체에 대한 이야기로 당신은 미칠 지경에 빠졌을 꺼다. 게다가 이것은 당신을 혼란에 빠트릴 수준까지 왔을 것이다. (첫줄만 직독직해.) 예를들어서 당신의 시스템에 프린터가 하나 밖에 없을때 프린터를 대변하는 객체의 숫자를 하나로 제한해야 하지 않을까? 아니면 하나의 파일에 대하여 16개의 파일 접근자만 허용할때 따위 같은거 말이다. 여기서는 그 해법에 관해서 생각해 본다.
         '''첫번째'''로 만들어지는 객체의 위치이다. 위의 제시된 두가지의 방법에서, Printer 정적(staitc) 객체가 하나는 friend로 클래스의 제어권을 획득한 함수 내부에 있고, 또 하나는 클래스 멤버 메소드 내부에 있다. 함수에 있는 경우에는 정적(static) 객체는 항상 만들어져 있다. 이 의미는 해당 코드의 프로그램이 시작될때 부터 아예 객체가 만들어 진다는 의미이다. 즉, 한번도 그 객체를 사용하지 않아도, 객체는 이미 만들어져 비용을 지출하게 한다. 반면에, 함수 멤버 메소드 내부에 정적(static)객체를 만들 후자의 경우에는 객체를 만드는 역할을 하는 메소드인 Printer::thePrinter 가 제일 처음 호출될때 객체가 생성된다. 이것은 C++에서 "사용하지 않는 객체에 대한 비용은 지불하지 않는다."의 설계 다소 복잡한 이념에 근간을 둔 개념이다. 그리고 이러한 복잡한 개념은 당신을 해깔리게 만든다.
         또 이 둘의 다른 취약점은 초기화 되는 시간이다. 우리는 함수의 경우에 초기화 시간을 정확히 알수 있다. 아예 처음 이니까 하지만 멤버 메소드로 구현시에는 모호하다. C++는 확실히 특별하게 해석해야 할 부분(단일 객체에서 소스 코드 몸체 부분 따위)은 정적 인자들에 대한 초기화 순서가 보장 된다. 하지만 서로 다른 해석 부분(translation unit)에 있는 정적 객체들의 초기화 순서에 대해서는 말할수가 없다. 이것은 머리를 아프게만 할뿐이다.
         다음과 같은 코드의 함수는 매우 짧다. 이런 짧은 함수는 함수보다 inline 시켜서 속도를 높이는 것이 더 효과적이다. 하지만 그럴수가 없다. 왜 그런가 하면, inline의 의미는 정확히 해당 함수가 쓰이는 코드를 현재 함수의 몸체로 교체해 버리는 역할이다. 그런게 이렇게 할경우, 위와 같은 함수는 static객체의 처리에서 의문이 생긴다. 해당 함수가 호출된 곳을 위와 같은 함수 몸체로 교체하면, 각 교체 부분은 전부 독립적인 static 인자를 부여 받는 셈이 되어 버린다. 그래서 정적 인자를 쓴 함수는 inline을 시키지 못하며, 이런 정적 인자의 사용에 따라 일어나는 의문을 internal linkage를 가진 문제 라고 한다. DeleteMe) 날림 요약 수정 필요
         자, 똑똑한 사람 이라면 당연히, 지금까지의 코드에서 의문점과 문법에 대한 의아함을 일으 킬수 있다. thePrinter는 둘다 내부에 있는 static 객체의 참조를 반환하는데, 이 "static 객체는 해당 함수,메소드의 영역(scop) 내부에서 쓰여야지 외부에서 쓰이면 안되지 않는가?" 라는 의문이 그것이다. 즉, 클라이언트 입장에서 이들 객체는 숨겨져(hidden)있는 존재이고, 이것을 사용하는 것은 잘못된 방법이다. 라고 말할수 있겠는데, 그래서 아마 당신은 다음과 같이 객체의 숫자를 세고, 제한된 객체의 수보다 더 많은 객체를 사용시 예외를 발생시켜서 문제를 해결하는 것이 더 좋은 방법이라 말할 것이다.
         이런 아이디어는 numObject를 사용해서 Printer객체의 수를 제한 시켜 버리는 것이다. 위에도 언급하였듯이 객체의 수가 1개를 초과하면, TooManyObject 예외를 발생시킨다.
         첫번째 객체 p는 순조로히 생성된다. 하지만 엄연히 다른 프린터를 대상으로 하고 있는 cp는 생성되지 않고, TooManyObjects 예외를 발생 시킨다. 왜 그러는지 모두들 예상 할것이다. 더불어 비슷 또 다른 경우를 생각 해 본다면.
         Printer 객체가 존재할수 있는 세가지의 상황에서 이런 문제는 발생 될수 있다. : 그냥 그들 자체를 선언해서 사용하기. 다른 클래스로 유도될때. 좀더 큰 클래스에서 해당 클래스를 인자로 포용할때 이다. 하지만 숫자로 제어하고, 예외를 발생시키는 방법이 아닌 생성자가 사역(private)인자로 들어간 경우에는 해당 클래스에서 유도된 클래스들도 생성하지 못하며, 다른 클래스의 인자로도 들어갈수가 없어서, 이런 문제들이 봉쇄된다.
         자, 이런걸로 한가지 재미있는 것을 만들수 있다. 만약 당신이 C++상에서 더이상 상속 되지 않는 클래스를 만들고 싶을때 어떻게 해야 할까?(주:참고로 Java나 C#의 경우 언어 설계 때부터 아예 해당 기능을 수행을 위한 키워드를 제공한다. 하지만 C++는 제공하지 않는다. 이런 방법을 설계자가 생각한건지, 차후 C++의 개발자들이 생각한건지 놀라울 뿐이다. 바로 이전에 나온 가상 복사 생성자의 아이디어와 비슷하다고 해야 할까)
         같은 코드 써서 내용만 늘린 것 같다. 하지만 조금더 언급해 본다면. Printer::maxObjects는 클래스 내부에서 10으로 초기화 시켰는데, 이는 컴파일러의 지원 여부에 따라 static const 멤버의 경우 초기화가 가능한 C++의 규칙이다.(주:참고 내용이 있었는데 몇 장인지 기억 안난다.) 그리고 maxObject에 관하여 변하지 않는 값이기에 enum으로도 쓸수 있는데, 다음과 같다.
         operator new는 raw메모리 할당을 하고, 해당 메모리에서 생성자를 부르므로서 초기화를 수행한다. operator new에서 onTheHeap을 참으로 설정하여 주면, 생성자에서 이를 검사해서 예외 발생을 하지 않고, 일반 지역 변수로 객체가 선언되면 operator new를 거치지 않으므로, 기본 값인 false인해 생성자에서 예외를 발생시킨다.
         첫째로, 이 경우 operator new가 불리는 것이 아니라. 메모리는 operator new[]로 할당 되기때문에, 문제가 발생하는 것이고, 둘째로 operator new[]에 플래그 값을 주었다고 하더라도, 처음 한번의 operaotr new[]이후에 계속 생성자 100번이 불리면서 첫번째 생성자에서 다시 onTheHeap를 false로 초기화 시키기에, 이후에 불리는 생성자는 전부 onTheHeap이 false값으로 예외를 발생 시켜 버린다.
         또 배열이 아니더라도 다음과 같은 경우도 생각해 본다.
         이 경우에는 두가지의 new를 가지고 있다. 그러므로 operator new도 두번 불리고 생성자 역시 두번 불릴 것이다. 프로그래머가 일반적으로 기대하는 다음 순서에서는 아무런 문제가 없다. (Item 8 참고)
         이런 방식으로 구성된 프로그램의 시스템에서 다음과 같은 방법으로 비교를 할수 있지 않을까?
         기나긴 여정이다. 이제 글의 막바지인 주제로 왔다. 여태한 것과 반대로 Heap영역에 객체를 올리는ㄳ을 막을려면 어떻게 해야 할까? 이번에는 이런 반대의 경우에 관해서 생각해 본다.
         반면에 위의 코드가 그대로라면, 다음과 같은 코드 같이 has-a관계의 경우에는 가능하다.
          // 이경우 Asset::operator new 나
         C++의 built-in 포인터로서(다시 말해 '''dumb'''(가상정도로 해석, 이하 "더미"로 표현) 포인터) 스마트 포인터 사용한다. 이럴 경우 앞으로 다를 다음과 같은 경우들의 문제들이 논의 된다.
          클라이언트는 스마트 포인터가 가진 클래스를 '''어떤 때''' '''어떻게''' 참조를 해야 할까? 예를들어서 lazy fetching(Item 17참고)를 스마트 포인터 구현하는 것과 같이 여러 경우에 대한 문제를 생각하자.
  • 회원자격 . . . . 34 matches
         정해진 양식은 없으나 운영진이 확인할 수 있는 정도로 작성 바랍니다.
         4. 운영진이 정기적으로 게시판을 확인한 후 신청 내용에 따라 등급을 조정해드립니다.
          * 기여가 없을 경우 미인정
          * '정회원 승격 조건'의 D, E 중 1개 이상 충족시 면제(D의 경우 Mentor만 인정)
         정해진 양식은 없으나 운영진이 확인할 수 있는 정도로 작성 바랍니다.
         4. 운영진이 정기적으로 게시판을 확인한 후 신청 내용에 따라 등급을 조정해드립니다.
          * 기여가 없을 경우 미인정
         3. 2의 예시는 아래와 같으며 정해진 양식은 없으므로 운영진이 확인할 수 있는 정도로 작성해주시기 바랍니다.
         4. 2를 완료한 경우 https://zeropage.org/hello 에서 공지의 양식에 따라 등급 조정을 신청해주시기 바랍니다.
         5. 운영진이 정기적으로 게시판을 확인한 후 신청 내용에 따라 등급을 조정해드립니다.
         3. 2의 예시는 아래와 같으며 정해진 양식은 없으므로 운영진이 확인할 수 있는 정도로 작성해주시기 바랍니다.
         4. 2를 완료한 경우 https://zeropage.org/hello 에서 공지의 양식에 따라 등급 조정을 신청해주시기 바랍니다.
         5. 운영진이 정기적으로 게시판을 확인한 후 신청 내용에 따라 등급을 조정해드립니다.
         단 회장 판단 하에 최소 1달 이상 활동 의사가 없는 것으로 보일 경우 정회원에서 준회원으로 강등시킬 수 있다.
         ZP 행사 또는 학회 관련 활동시 회장단의 판단하에 TF인원이 필요하다고 생각되는 경우, 불가피한 사유외에는 참여해야함.
         휴면회원 : 회칙 제5조 1항에 의하여 정회원은 다음 각 호의 어느 하나에 해당하는 사유로 일정 기간 활동이 불가능한 경우 휴면을 신청 할 수 있다.
          * 단 회장 판단 하에 최소 1달 이상 활동 의사가 없는 것으로 보일 경우 정회원에서 준회원으로 강등시킬 수 있다.
          * ZP 행사 또는 학회 관련 활동시 회장단의 판단하에 TF인원이 필요하다고 생각되는 경우, 불가피한 사유외에는 참여해야함.
          * 휴면회원 : 회칙 제5조 1항에 의하여 정회원은 다음 각 호의 어느 하나에 해당하는 사유로 일정 기간 활동이 불가능한 경우 휴면을 신청 할 수 있다.
          * ZP 행사 또는 학회 관련 활동시 회장단의 판단하에 TF인원이 필요하다고 생각되는 경우, 불가피한 사유외에는 참여해야함.
  • 1002/Journal . . . . 31 matches
          * GOF 번역을 할때엔? - 번역을 할때엔 애매한 단어들에 대해 전부 사전을 찾아보게 된다. (완전히 직역을 하므로) 시간이 많이 걸리지만, 영어학습 초기엔 자주 해보는게 좋지 않을까 생각한다. (꼭 한글 번역이 아닌, 어려운 영어에 대한 쉬운 영어로의 해설. 이게 좀 더 어려우려나..)
          * 사전지식이 이미 있었기 때문이라고 판단한다. NoSmok:HowToReadaBook 는 한글 서적을 이미 읽었었고, 'Learning, Creating, and Using Knowledge' 의 경우 Concept Map 에 대한 이해가 있었다. PowerReading 의 경우 원래 표현 자체가 쉽다.
          * 반면, TPOCP 의 경우 사전지식을 가지고 있지 않았고, 한편 '새로 읽는 책에 대해서 사전지식으로 해석하기'를 조심하고 있었다. (이건 좀 다행인듯 하다.) 그리고 RT 이후의 다른 사람들 의견을 들어보면, 쉬운 영어는 아닌 것 같다.
          * 이번에 발제를 상당히 잘했다고 생각되는 사람들을 보니, 한명은 적어도 일주일전부터 준비했고, 한명은 해당 챕터를 3-4번정도 읽었다고 한다. 그리고 그 사람들이 이야기할 수 있을 정도가 어느정도이냐면, 해당 예제상황에 대해 적절하게 자신의 예로 말할 수 있을정도이거나, 또는 요약한 내용을 거의 보지 않고도 이야기할 수 있는 수준이였다. 두명의 경우 외부 자료를 찾아보기도 했다.
          * 이러한 사람들이 책을 읽을때 5분간 읽으면서 어떤 과정을 어느정도 수준으로까지 거치는지에 대해 구경해볼 수 있어도 좋을것 같다. 그러한 점에서는 RT 때 Chapter 단위로 Pair-Reading 을 해봐도 재미있을 듯 하다. '읽는 방법'을 생각하며 좀 더 의식적으로 읽을 수 있지 않을까.
          * Blank Error 의 에러율 변화에 대한 통계 - 이론으로 Dead Lock 을 아는 것과, 실제 Multi Thread 프로그래밍을 하는 중 Dead Lock 상황을 자주 접하는것. 어느것이 더 학습효과가 높을까 하는 생각. 동의에 의한 교육에서 그 동기부여차원에서도 학습진행 스타일이 다르리란 생각이 듬.
          * 쌓아나가야 할 부분이 상당히 많아보이는데.. Refactoring 에서의 경험을 어설프게 가로질러본다면. ReFactoring 을 할때 나쁜 클래스들을 그 안에서 계속 고쳐나가는 것 보단, 새 클래스나 메소드들을 중간에 만든뒤, 나쁜 클래스들을 삭제하는게 더 빠른 방법이다. 좋은 습관을 만들어내는 것이 나쁜 습관을 고쳐내려고 하는것보다 최종적으로 볼땐 더 접근하기 쉽지 않을까 하는 생각을 해본다. 나쁜 점이라 생각하는것은, 의식화해서 고치는 것 보단 좋은 습관으로 대체하고 나쁜 습관을 아에 잊어버리게끔 하는것이 더 나은것 같다.
         Refactoring 을 하기전 Todo 리스트를 정리하는데만 1시간정도를 쓰고 실제 작업을 들어가지 못했다. 왜 오래걸렸을까 생각해보면 Refactoring 을 하기에 충분히 Coverage Test 코드가 없다 라는 점이다. 현재의 UnitTest 85개들은 제대로 돌아가지만, AcceptanceTest 의 경우 함부로 돌릴 수가 없다. 왜냐하면 현재 Release 되어있는 이전 버전에 영향을 끼치기 때문이다. 이 부분을 보면서 왜 JuNe 이 DB 에 대해 세 부분으로 관리가 필요하다고 이야기했는지 깨닫게 되었다. 즉, DB 와 관련하여 개인 UnitTest 를 위한 개발자 컴퓨터 내 로컬 DB, 그리고 Integration Test 를 위한 DB, 그리고 릴리즈 된 제품을 위한 DB 가 필요하다. ("버전업을 위해 기존에 작성한 데이터들을 날립니다" 라고 서비스 업체가 이야기 한다면 얼마나 황당한가.; 버전 패치를 위한, 통합 테스트를 위한 DB 는 따로 필요하다.)
         Alice in wonderland 의 경우 여자성우가 읽어준다. 이전에 들었던 Sherlock Holmes 의 경우에 익숙해져여서인지, 발음속도가 느림에도 불구하고 이해도가 떨어졌다. 이전에는 그냥 듣고 머릿속에서 문장을 그린다음 이해하는 방식으로 했는데, 이번에는 받아쓰기 연습을 해봐야겠다.
         그리고 정규표현식을 이용한 extract 가 과연 'The Simplest Thing' 일까라는 생각을 하게 되었다. 올바른 정규표현식을 찾아내야 하고, 그러다보면 데이터 코드와 정규표현식이 일종의 Duplication 을 만들어낸다. (파싱하려는 문서의 일부가 정규표현식에 들어가므로) 그리고 RE 는 RE 문법을 아는 사람이라면 모르겠지만, 그렇지 않고 막연한 경우에 TDD 할 경우 Try and Error 식으로 접근해버릴 수 있다. (나의 경우는 이걸 점진적으로 하기 위해 표본이 되는 데이터를 작게 시작한다.) extract 의 'Simplest Thing' 는 find & substring 일것이란 생각을 해본다.
         그리고, 도서관 UI 가 바뀌었을 경우에 대한 대처방안에 대해서 이리저리 아이디어를 궁리해 보았었는데, 정규표현식부분을 따로 떼어내어 외부화일로 두던지 (이렇게 하면 컴파일하지 않아도 정규표현식을 수정하면 된다) 또는 HTML 을 전부 Parsing 하여 DOM 트리를 만든뒤 해당 노드의 Position 들에 대해 따로 외부화일로 두던지 (이는 추후 일종의 extractor tool 로 빼낼 수 있을 것이므로) 하는 아이디어가 떠올랐다.
         Top Down 으로 접근하여 해당 메소드가 필요해지는 일을 빨리 만들어내거나, To Do List 를 작성, Bottom Up 으로 접근한다 하더라도 궁극적으로 구현하려는 목표지향점이 명확하면 길을 헤맬 일이 없다는 것을 다시금 재차 확인하게 되었다.
          * 영어 듣기에 대한 받아쓰기 자체를 먼저 연습해보는것이 순서일 것 같다. technetcast 중 10분짜리 짧은 인터뷰에 대해 받아쓰기 연습을 해보는건 어떨까. (단, 맞는지를 확인할 스크립트가 없는게 단점이군)
          * 영어듣기 연습은 이전에 친구가 영어공부 도와줄때 했었던, 노래가사 받아적기를 하는게 틀렸는지 확인하기도 편하고 재미있을 것 같다.
         Editplus 로 VPP 진행하는 한쪽창에 to do list 를 적었는데, VPP 인 경우 한사람이 todolist 를 적는 동안, 드라이버가 코드를 잡지 못한다는게 한편으론 단점이요, 한편으론 장점 같기도 하다. 일단은 궁리.
         TDDBE를 PowerReading 에서의 방법을 적용해서 읽어보았다. 내가 필요로 하는 부분인 '왜 TDD를 하는가?' 와 'TDD Pattern' 부분에 대해서 했는데, 여전히 접근법은 이해를 위주로 했다. WPM 은 평균 60대. 이해도는 한번은 90% (책을 안보고 요약을 쓸때 대부분의 내용이 기억이 났다.), 한번은 이해도 40%(이때는 사전을 안찾았었다.) 이해도와 속도의 영향은 역시 외국어 실력부분인것 같다. 단어 자체를 모를때, 모르는 문법이 나왔을 경우의 문제는 읽기 방법의 문제가 아닌 것 같다.
          * To Do List 에 대해서 Layering 이 필요하다 - 전체지도 : 부분지도 랄까. XP 라면 UserStory : EngineeringTask 를 이야기할 수도 있겠지. EngineeringTask 수준의 경우 Index Card 가 더 편하긴 한데, 보관해야 할일이 생길때 문제다. (특히 2-3일로 나누어서 하는 작업의 경우) 이건 다이어리 중간중간에 껴놓는 방법으로 해결예정. (구멍 3개짜리 다이어리용 인덱스카드는 없을까. -_a 평소엔 보관하다 필요하면 뜯어서 쓰고; 포스트잇이 더 나을까.)
         이번에는 TDD 로 하되, TDD쪽보다는 PBI 에 더 주안을 두고 했다. 이런 수학공식 구하기 스타일의 문제의 경우는 StepwiseRefinement 와도 같은 PBI가 굉장히 유용하다는 생각이 든다. 첫번째 문제 풀때 코드-테스트-재정의 식으로(중복보다는 재정의에 더 신경썼기 때문에) 넘어가는게 거의 1분을 넘어가지 않았다.
         단, OO Style 의 코드에 대해서 PBI 를 너무 강조하다보면 StructuredProgramming 에 더 가까운 OO 가 되지 않을까 한다. PBI는 TopDown 이므로.
          ''PBI와 TDD를 잘 버무려서 적용해 보는 실험을 해보아라. 장점이 나름대로 있다. 단점은, 군더더기가 생기거나 완전히 포기하고 새로짜야 할 일이 종종 있다는 점. 내가 중요하다고 생각한 도메인 오브젝트가 사실은 필요없는 것인 경우가 많다. 시간이 나면 DDD도 공부해 보길. --JuNe''
  • Linux/필수명령어/용법 . . . . 30 matches
         두 번째 형식은 어떤 사용자 레벨을 바꿀 것인가 어떻게 바꿀 것인가를 개별적으로 정하는 방법이다. 숫자를 사용하지 않고 ls 등을 사용할 때 실제로 볼 수 있는 기호 문자를 사용한다는 것과 특정 권한을 줄 것인가 뺄 것인가 지정할 수 있다는 장점이 있다. 특정한 경우 두 번째 형식이 편리하겠지만 고유한 값의 권한을 지정하는데에는 첫 번째 형식이 훨씬 편리할 것이다. 8진법을 다루는 것은 조금만 알면 너무나 쉽기 때문이다.
         만일 중간에 다른 점을 발견한다면 더 이상의 작업은 중단하고 차이를 발견한 지점을 알려주고는 종료한다. 또한 계속해서 일치해 나가다가 두 파일 중 어느 하나가 끝나는 경우가 있을 수 있다. 다시 말해, 한 파일이 다른 파일의 앞부분에 해당하는 경우이다. 이때는 어느쪽 파일의 end of file 표시를 만나게 되었는지를 알려주고 종료한다.
         오프셋을 지정하면 파일의 어느 부분부터 비교할 것인지를 정할 수 있다. -s 옵션이 왜 필요한 지를 이해하지 못할 테지만, cmp 명령이 보이지 않게 리턴값을 들려준다는 점을 알면 이해할 수 있을 것이다. cmp는 비교 후 두 파일이 일치한다고 판단하면 0을 리턴하며, 그렇지 않으면 1을 리턴한다. 셸 스크립트 상에서 비교 결과만을 원하고 화면에 메시지가 출력되는 것을 원치 않을 때에는 이러한 옵션을 사용할 수 있을 것이다. C 언어를 아는 사람이라면 금방 이해할 수 있었으리라 생각된다.
         압축된 파일은 이름에 접미사 .Z가 추가된다. 압축 알고리즘에 의해 크기가 줄어드는 경우만 압축을 수행한다. -d 옵션은 역으로 압축을 풀지만 uncompress를 사용하면 옵션을 주지 않고 압축을 풀 수 있다. 압축을 푸는 경우 파일 이름 뒤에 접미사 .Z를 생략할 수도 있다.
         -i : 복사시 같은 이름의 파일이 존재한다면 덮어쓸 것인가 확인한다.
         만일 파일명2가 이미 존재하는 파일의 이름이라면 기존에 있던 파일은 사라지고 새로운 복사본 파일로 바뀐다. 이것이 원하지 않는 결과라면 -i 옵션을 주어서 확인 작업을 거칠 수 있다. -i 옵션은 파일명2가 이미 존재하는 이름이라면 그대로 복사할 것인지 아닌지를 선택할 수 있게 물어온다.
         : 시스템은 현재의 날짜와 시간을 유지하고 있다. date 명령을 사용하면 그러한 시간을 확인할 수 있다. 또한 날짜와 시간 정보를 변경할 수 있다. 물론 시스템의 날짜와 시간은 슈퍼 유저만이 변경할 수 있다.
         -a 옵션을 사용하였다면 검사도중 발견된 오류는 자동으로 복구된다. -r 옵션을 사용한다면 반드시 -s 옵션을 함께 사용해야 한다. fsck는 기본적으로 한꺼번에 몇 개의 검사를 병행하는 병렬 작업을 하기 때문에 하나의 에러를 발견하더라도 다른 검사는 계속 수행되고 있다. 검사 시간을 최대한 절약하기 위해서 병렬 작업을 하기 때문에 사용자의 수정과 다른 검사 작업의 호홉이 맞지 않을 수 있다. 그러므로 -s 옵션을 주어서 오직 하나의 검사 작업만 진행되도록 해야 한다. 그러나 -r 옵션은 하위 버전과의 호환성을 위한 것으로서 사용자는 -a 옵션만을 사용하는 것으로서 충분하다. 파일 시스템을 지정해 주지 않으면 /etc/fstab 파일에 나열된 파일 시스템을 검색한다.
         문서의 앞 머리 세 줄만 확인하기 위해서 다음과 같이 할 수 있다.
         : 시스템에 등록된 ID를 확인한다.
         셸을 사용할 때 어떤 명령의 사용법이 기억나지 않는 경우가 있다. 혹은 매번 사용하던 명령이라도 특수한 옵션이 필요할 때 그 기호나 사용법을 정확히 확인해야 하는 경우가 많이 있다. 물론 참고 서적을 보면 되겠지만 터미널 상에서 필요한 도움말을 언제라도 제공받을 수 있다. 시스템에 내장된 매뉴얼은 빠르게 볼 수 있을 뿐만 아니라 그 내용도 완벽한 것이어서 옵션의 종류 같은 것은 빠진 것이 없다. 만일 온라인 레퍼런스를 모두 종이로 출력한다면 그 분량은 엄청날 것이 틀림없다.
         -n : 파일을 덮어쓰게 되는 경우에도 경고하지 않는다.
         당신의 터미널이 다른 사용자의 메시지를 받기 원한다면 y, 그렇지 않다면 n을 선택한다. 옵션을 선택하지 않으면 mesg는 현재 터미널의 메시지 수신 가능 여부를 확인하여 알려준다. 보통 기본적으로 터미널은 메시지를 수신할 수 있다.
         -f : 같은 이름의 파일이 존재하고 쓰기 권한이 금지되어 있더라도 물어보지 않고 덮어쓰기를 해버린다. 이런 경우 이 옵션을 사용하지 않으면 사용자에게 다시 확인을 할 것이다.
         -i : 파일을 덮어쓰기 전에 사용자에게 확인한다.
         : 하나 혹은 그 이상의 파일로부터 칼럼 형태의 출력을 만든다. 이것은 cut과 함께 사용되는 경우가 많다.
         -x : 로그인 상태에 있는 동안 아직 완료되지 않은 프로세서들을 보여준다. 유닉스 시 스템은 사용자가 로그아웃하고 난 후에도 임의의 프로세서가 계속 동작하게 할 수 있다. 그러면 그 프로세서는 자신을 실행시킨 셸이 없이도 계속 자신의 일을 수행한다. 이러한 프로세서는 일반적인 ps 명령으로 확인할 수 없다. 이때 -x 옵션을 사용하면 자신의 터미널이 없는 프로세서들을 확인할 수 있다.
         다음과 같은 확인자를 사용한다면 다른 시간 단위를 사용할 수 있다.
         - $ cat sample ,, 분류된 내용 확인
         su의 인수로 원하는 사용자의 ID를 주면 그 사용자의 패스워드를 물어오고, 입력한 패스워드가 일치한다면 새롭게 생성된 셸을 볼 수 있다. 그렇게 다른 사람으로 작업한 후에 exit등으로 셸을 종료하면 다시 이전에 작업하던 셸로 돌아갈 수 있다. 이 명령은 혼자서 시스템을 사용하는 리눅스 사용자들에게 매우 유용하다. 기본적으로 일반 사용자 계정으로 작업하다가 필요한 경우 수퍼 유저로 로그인하고서 필요한 일이 끝나면 다시 일반 계정 셸로 돌아갈 수 있기 때문이다.
  • MoreEffectiveC++/Exception . . . . 30 matches
         방법은 올바르다. 예외시에 해당 객체를 지워 버리는것, 그리고 이건 우리가 배운 try-catch-throw를 충실히 사용한 것이다. 하지만.. 복잡하지 않은가? 해당 코드는 말그대로 펼쳐진다.(영서의 표현) 그리고 코드의 가독성도 떨어지며, 차후 관리 차원에서 추가 코드의 발생시에도 어느 영역에 보강할것 인가에 관하여 문제시 된다.
         예외 발생시에 함수가 종료되면 auto_ptr상의 객체는 무조건 해제된다.
         일반적으로 C의 개념으로 짜여진 프로그램들은 createWindow and destroyWindow와 같이 관리한다. 그렇지만 이것 역시 destroyWindow(w)에 도달전에 예외 발생시 자원이 세는 경우가 생긴다. 그렇다면 다음과 같이 바꾸어서 해본다.
         자 이제 깨끗이 해결 된 것으로 보인다. 하지만 이번에는 이런 경우를 상정해 보자
         이런 const 포인터의 경우에는 반드시 초기화 리스트를 이용하여 인자를 초기화 해주어야 하는 경우이다.
          // theAudioClip는 두번째로 초기화 되기 때문에, 예외의 발생경우 이미 할당되어진 theImage의 자원을
         이렇게 디자인 할경우 파괴는 자동으로 이루어 진다. 그러므로 파괴자는
         파괴자 호출은 두가지의 경우가 있다. 첫번째가 'normal'상태로 객체가 파괴되어 질때로 그것은 보통 명시적으로 delete가 불린다. 두번째는 예외가 전달되면서 스택이 풀릴때 예외 처리시(exception-handling) 객체가 파괴되어 지는 경우가 있다.
         아마 대다수의 사람들이 이런 상태로 빠지는걸 원하지 않을 것이다. Session 객체의 파괴는 기록되지 않을 태니까. 그건 상당히 커다란 문제이다 그러나 그것이 좀더 심한 문제를 유발하는건 프로그램이 더 진할수 없을 때 일것이다. 그래서 Session의 파괴자에서의 예외 전달을 막아야 한다. 방법은 하나 try-catch로 잡아 버리는 것이다.
         이럴 경우에는 Session의 파괴자에게 문제를 제거하는 명령을 다시 내릴수 있따 하지만 endTransaction이 예외를 발생히킨다면 다시 try-catch문으로 돌아 갈수 밖에 없다.
         자, 비슷한 면은 언급해보면, 함수 예외 모두 에 인자를 전달할때 세가지로 전달할수 있다. 값(by value)이냐 참조(by reference)냐, 혹은 포인터(by pointer)냐 바로 이것이다. 하지만 이 함수와 예외에서의 인자의 전달 방식은 구동 방법에서 결정적인 차이점을 보인다. 이런 차이점은 당신이 함수를 호출할때 최종적으로 반환되는 값(returns)이 해당 함수를 부르는 위치로 가지만, 예외의 경우에 throw의 위치와 return의 위치가 다르다는 점에서 기인한다.
         객체가 예외를 위하여 복사가 될때 복사는 해당 객체의 복사생성자(copy constructor)에 의하여 수행 된다. 이 복사생성자는 객체의 dynamic형이 아닌 static 형에 해당하는 클래스중 하나이다. 개념의 확인을 위해 위 소스의 수정 버전을 생각해 보자
          throw rw; // rw의 형 즉 Widget의 복사생성자가 작동하여 복사해 예외를 발생시킨다.
         다음의 경우 passAndThrowWidget 이 던지는건 Widget 이다. 위에서 언급했듯이 static type으로 예외는 전달된다. 컴파일러는 rw가 SpecialWidget으로의 동작을 전혀 생각하지 않는다.
         자 그럼 다음의 세가지 catch에 관해서 시험해 보자. passAndThrowWidget에서 발생한 예외는 다음의 세가지의 경우로 잡을수 있는걸 예상할수 있다.
          +-logic_error
          | +-domain_error
          | +-length_error
          +-runtime_error
          +-range_error
  • 작은자바이야기 . . . . 30 matches
          * 토요일에 할 수 있는 활동들 중에서 시간 대 성능 비가 월등하니까 듣지 않을 이유가 없다.
          * 오픈소스 라이브러리의 라이선스 확인은 중요합니다.
          * c++에서 상호배제 관련으로 mutex나 critical section같은거 엄청 배웠었는데 자바에서는 synchronized를 이용해서 쉽게 처리할 수 있다는게 신기했습니다. os 수업 들은지 오래 됐는데 멀티프로세스와 멀티스레드 수업을 다시 들으니까 설명을 참 잘 해주셔서 좋았습니다. 함수에만 붙일 수 있는게 아니고 보호자원을 가진 객체를 이용한 synchronized(this){ ... } 같은 부분은 나중에 스레드를 쓸 경우에 참고가 될 것 같습니다. 그리고 인터페이스와 리플렉션을 이용한 초기화를 보니 생각을 잘 하면 구체클래스가 코드에 안드러나게 할 수 있다는 점도 볼만했습니다. -[서영주]
          * 전체적으로 다른 언어에서는 볼 수 없는 자바의 문법 + 객체지향 원칙을 중점적으로 다룬 시간이었습니다. 중간중간 다른 이야기들(builder 패턴, 저작권)이 들어갔지만 그래도 다룬 주제는 명확하다고 생각합니다. 다만 그걸 어떻게 쓰느냐는 흐릿한 느낌입니다. 그건 아마도 각 원칙들이나 interface, 객체 등에 대한 느낌을 잡기 위해서는 경험이 좀 필요하기 때문이 아닌가 싶습니다 ;;; 수경이가 말한 대로 한 번이라도 해 본 사람은 알기 쉽다는 말이 맞지 않을까 싶네요. 그리고 전체적으로 이야기를 들으면서 현재 프로젝트 중인 코드가 자꾸 생각나서 영 느낌이 찝찝했습니다. 세미나를 들으면서 코드를 생각하니까 고쳐야 될 부분이 계속 보이는군요. 그래도 나름대로 코드를 깔끔하게 해 보려고 클래스 구조도 정리를 좀 하고 했는데 더 해야 할 게 많은 느낌입니다. ㅠㅠ 그 외에도 이번 시간에 들었던 메소드의 책임이 어디에 나타나야 하는가(객체 or 메소드) 라거나 상속을 너무 겁내지 말라는 이야기는 상당히 뚜렷하게 와 닿아서 좋았습니다. 아. DIP에서 Logic과 native API 사이에 추상화 레이어를 두는 것도 상당히 좋았는데 기회가 되면 꼭 코드로 보고 싶습니다. 아마 다음에 보게 되겠지만. - [서민관]
          * 리플렉션과 제네릭스를 써서 map -> object와 object -> map을 하는 부분을 해봤습니다. 자바의 일반적인 세 가지 방식의 클래스 내 변수에 대해 getClass, getFields, getMethods를 사용해 private, 나 접근자가 있는 경우의 값을 받아왔습니다. getter를 사용해서 변수 값을 받아올 때 이름이 get으로 시작하는 다른 함수를 제외하기 위해 method.getParameterTypes().length == 0 같은 부분은 이렇게 체크해야 된다는 부분은 나중에 제네릭스 관련으로 써먹을만 할 것 같습니다. 그리고 mapToObject에서는 문제가 없었지만 objectToMap의 경우에는 제네릭스의 type erase때문에 Class<T> expectedType = T.class; 같은 코드를 사용할 수 없어서 map.put(field.getName(), (T)field.get(obj));에서 형변환의 타입 안전성을 위해 인자로 Class<T> valueType을 받아오고 valueType.isAssignableFrom(field.getType())로 체크를 하는 부분도 공부가 많이 됐습니다. - [서영주]
          * 체크가 되어있을 경우 maven 의존성과 별개로 워크스페이스 안에 있는 프로젝트를 참조할 수 있게 해준다.
          * 분산환경의 경우 os단에서 상호배제를 해주지 못하기 때문에 동시성 제어에 문제가 있을 수 있다. 따라서 분산환경에서의 사용은 좋지 못하다.
          * 예외가 올라가게 될 경우는 예외를을 한 단계 추상화해서 올려주는 것이 좋다.
          * 데이터를 테이블로 저장할 때 중복된 값이 있는 경우에는 테이블이 나눠져있는 경우와 비교해서 다른 테이블을 찾지 않아도 되기 때문에 검색 비용이 적다.
          * 하지만 중복된 값이 있는 경우에는 업데이트시 값이 있는 부분을 전부 찾아서 수정해야 하므로 업데이트 비용이 비싸다.
          * 반대로 데이터의 중복을 없애고 테이블을 나눴을 경우는 업데이트 비용이 줄어들고 검색의 비용이 늘어난다.
          * 정규화를 할 경우 테이블간의 중복된 값을 없앤다.
          * 설정을 따로 빼내기 좋고, set을 private함수로 바꿔서 불변객체를 만들 수도 있다. 이렇게 할 경우 스레드 환경에도 조금 더 안전해진다.
          * 생성 메소드를 호출하는 인스턴스의 타입, 메소드에 들어가는 인자의 두 가지가 새로 생성되는 인스턴스에 영향을 주는 경우 abstract factory
          * 생성 메소드의 인자만으로 생성되는 인스턴스의 타입이 결정될 경우 factory method
          * ~let : 외부의 컨테이너에서 라이프사이클을 관리해주는 프로그램. 안드로이드의 activity같은 경우 외부에서 실행시켜서 동작하게 됨. 그것과 비슷한 것.
          * http요청(http://hostname/contextPath/path?params) -> contextPath를 보고 해당하는 war를 찾음 -> war 내부의 web.xml을 보고 <servlet-mapping>의 정보를 보고 해당 주소에 매핑된 servlet을 찾는다. -> 해당하는 servlet이 없을 경우 defalut servlet이 처리
          * IME(Input Method Editor) - OS 레벨에서 실제 key code - 문자의 mapping과 문자 조합('ㅁ' + 'ㅏ' 같은 경우)의 처리를 해 주는 소프트웨어. Sublime에서는 제대로 처리를 안 해 줬다...
          * .java 파일에는 클래스 내에 native modifier를 붙인 메소드를 작성하고, .c, .cpp 파일에는 Java에서 호출될 함수의 구현을 작성한다. 이후 System.loadLibrary(...) 함수를 이용해서 .dll 파일(Windows의 경우) 또는 .so(shared object) 파일(Linux의 경우)을 동적으로 로드한다.
          * stack-based machine의 경우 register-based machine에 비해 push, pop이 많아서 속도가 조금 느리지만 register를 사용하는 경우에 비해 기기에 덜 종속적이다.
  • GuiTestingWithMfc . . . . 27 matches
         Dialog Based 의 경우 Modal Dialog 를 이용하게 된다. 이 경우 Dialog 내에서만 메세지루프가 작동하게 되므로, DoModal 함수로 다이얼로그를 띄운 이후의 코드는 해당 Dialog 가 닫히기 전까지는 실행되지 않는다. 고로, CppUnit 에서의 fixture 를 미리 구성하여 쓸 수 없다.
         || test2GuiOne || 버튼이 눌러졌을 경우에 CGuiTestingOneDlg::m_bFlag 가 true 상태가 된다. ||
         || test2GuiOne || 버튼이 눌러졌을 경우에 CGuiTestingOneDlg::m_bFlag 가 true 상태가 된다. ||
         || test3ListAdd || Editbox 에 "Testing..." 을 셋팅. 버튼을 눌렀을 때 Listbox 의 item 갯수가 1개임을 확인 ||
         || . || Listbox 의 첫번째 item 의 스트링이 "Testing..." 임을 확인 ||
         || test2GuiOne || 버튼이 눌러졌을 경우에 CGuiTestingOneDlg::m_bFlag 가 true 상태가 된다. ||
         || test3ListAdd || Editbox 에 "Testing..." 을 셋팅. 버튼을 눌렀을 때 Listbox 의 item 갯수가 1개임을 확인 ||
         || . || Listbox 의 첫번째 item 의 문자열이 "Testing..." 임을 확인 ||
         || test4ListAddMore || test3 에 추가된 형태. Editbox 에 다시 "Testing2..." 를 셋팅하고, 버튼을 눌렀을 때 Listbox 의 item 갯수가 2개임을 확인 ||
         || . || Listbox 의 두번째 item 의 문자열이 "Testing2..." 임을 확인 ||
         || test2GuiOne || 버튼이 눌러졌을 경우에 CGuiTestingOneDlg::m_bFlag 가 true 상태가 된다. ||
         || test3ListAdd || Editbox 에 "Testing..." 을 셋팅. 버튼을 눌렀을 때 Listbox 의 item 갯수가 1개임을 확인 ||
         || . || Listbox 의 첫번째 item 의 문자열이 "Testing..." 임을 확인 ||
         || test4ListAddMore || test3 에 추가된 형태. Editbox 에 다시 "Testing2..." 를 셋팅하고, 버튼을 눌렀을 때 Listbox 의 item 갯수가 2개임을 확인 ||
         || . || Listbox 의 두번째 item 의 문자열이 "Testing2..." 임을 확인 ||
         || test5ListCursorOne || test3 진행시 선택된 Item 이 0 번째 임을 확인 ||
         || test6ListCursorTwo || test4 진행시 선택된 Item 이 1 번째 임을 확인 ||
         ==== 5. edit box 의 내용이 데이터 추가후 초기화 되는지 확인 ====
         || test2GuiOne || 버튼이 눌러졌을 경우에 CGuiTestingOneDlg::m_bFlag 가 true 상태가 된다. ||
         || test3ListAdd || Editbox 에 "Testing..." 을 셋팅. 버튼을 눌렀을 때 Listbox 의 item 갯수가 1개임을 확인 ||
  • MoreEffectiveC++/Efficiency . . . . 26 matches
         프로파일러(profiler:분석자)는 각각의 구문이 몇번이나 실행되는가 아니면 각각의 함수들이 몇번이나 불리는거 정도를 알려주는 유틸리티이다. 성능(performance)관점에서 당신은 함수가 몇번 분리는가에 관해서는 그리 큰 관심을 두지 않을 것이다. 프로그램의 사용자 수를 세거나, 너무 많은 구문이 수행되어 불평을 받는 라이브러리를 사용하는 클라이언트의 수를 세거나, 혹은 너무 많은 함수들이 불리는 것을 세는 것은 다소 드문 일이기도 하다. 하지만 만약 당신의 소프트웨어가 충분이 빠르다면 아무도 실행되는 구문의 수에 관해 관여치 않는다. 그리고 만약 너무 느리면 반대겠지. (이후 문장이 너무 이상해서 생략, 바보 작성자)
         물론,프로파일러(profiler:분석자)의 장점은 프로세스중 데이터를 잡을수 있다는 점이다. 만약 당신이 당신의 프로그램을 표현되지 않는 입력 값에 대하여 프로파일(감시 정도 의미로)한다고 하면, 프로파일러가 보여준 당신의 소프트웨어의 모습에서 보통의 속도와, 잘 견디는 모습을 보여준다면 - 그부분이 소프트웨어의 80%일꺼다. - 불만있는 구역에는 접근하지 않을 다는 의미가 된다. 프로파일은 오직 당신에게 프로그램의 특별난 부분에 관해서만 이야기 할수 있는걸 기억해라 그래서 만약 당신이 표현되지 않는 입력 데이터 값을 프로파일 한다면 당신은 겉으로 들어나지 않는 값에 대한 프로파일로 돌아가야 할것이다. 그것은 당신이 특별한 쓰임을 위하여 당신의 소프트웨어를 최적화 하는것과 비슷하다. 그리고 이것은 전체를 보는 일반적인 쓰임 아마 부정적인 영양을 줄것이다.
         이와 같은 구문의 사용으로, String의 convertToUpperCase 함수를 적용하면, s2의 값의 복사본을 만들어야 하고, 수정되기전에 s2에 그걸 s2의 종속되는 데이터로 만들어야 한다. convertToUpperCase 내부에 우리는 lazy 상태가 더이상 지속되지 않도록 하는 코드를 넣어야 한다.:s2가 마음대로 다룰수 있도록 s2의 공유된 값의 사본을 복사해야 한다. 반면에 만약 s2가 결코 수정되지 않을 것이라면, 이러한 s2만의 값을 복사하는 일련의 과정이 필요 없을 것이다. 그리고 s2가 존재하는 만큼 값도 계속 존재해야 한다. 만약 더 좋게, s2가 앞으로 결코 변하지 않는다면, 우리는 결코 그것의 값에 대한 노력을 할필요가 없을 것이다.
         이런 경우에서는 오직 field2의 값만을 요구한다. 따라서 다른 필드를 로드하는 작업은 필요없는 작업이 되어 진다.
         보통 operator+에 대한 구현은 아마 '''eager evaluation'''(즉시 연산) 이 될것이다.;이런 경우에 그것은 아마 m1과 m2의 리턴 값을 대상으로 한다. 이 계산(1,000,000 더하기)에 적당한 게산양과, 메모리 할당에 비용 이 모드것이 수행되어져야 함을 말한다.
         하지만, lazy evaluation이 치룬 시간이 오직 저런 상태일 뿐이라면, "엄청난 계산을 요구한다"라는 문제가 더 커질것이라고 생각하기는 어렵다.의 필요성이 좀더 일반적인 시나리오는 우리가 오직 계산에서의 ''일부''가 필요한 경우이다. 예를 들자면 우리가 m3를 m1과 m2의 합으로 초기화 했다고 가정하고 다음과 같은 코드가 있다면
          // 그런 경우에는 db에서 자료를 가지고 와야 한다.
         캐시(cashing)는 예상되는 연산 값을 기록해 놓는 하나의 방법이다. 미리 가지고 오는 것이기도 하다. 당신은 대량의 계산을 줄이는 것과 동등한 효과를 얻을것이라 생각할수 있다. 예를들어서, Disk controller는 프로그래머가 오직 소량의 데이터만을 원함함에도 불구하고 데이터를 얻기위해 디스크를 읽어 나갈때, 전체 블록이나 읽거나, 전체 섹터를 읽는다. 왜냐하면 각기 여러번 하나 두개의 작은 조각으로 읽는것보다 한번 큰 조각의 데이터를 읽는게 더 빠르기 때문이다. 게다가, 이러한 경우는 요구되는 데이터가 한곳에 몰려있다는 걸 보여주고, 이러한 경우가 매우 일반적이라는 것 역시 반증한다. 이 것은 locality of reference (지역 데이터에 대한 참조, 여기서는 데이터를 얻기위해 디스크에 직접 접근하는걸 의미하는듯) 가 좋지 않고, 시스템 엔지니어에게 메모리 케쉬와, 그외의 미리 데이터 가지고 오는 과정을 설명하는 근거가 된다.
         이번 아이템은 일반적인 사용을 다루었다. 그리고 속도 향상은 상응 하는 메모리 비용을 지불을 해야만 할수 있다. 최대값, 최소값, 평균을 감안해서 요구되는 여분의 공간을 유지한다. 하지만 그것은 시간을 절약한다. cach 결과는 좀더 많은 메모리의 공간을 요구하지만 다시 할당되는 부분의 시간과 비용을 줄여서 비용을 절약한다. 미리 가지고 오고(prefetching)은 미리 가지고 와야 할것에 대한 공간을 요구하지만, 매번 그 자원에 접근해야 하는 시간을 줄여준다. 이러한 이야기(개념)은 Computer Science(컴퓨터 과학)에서 오래된 이야기 이다.:일반적으로 시간 자원과 공간 자원과의 교환(trade). (그렇지만 항상 이런 것이 가상 메모리와 캐쉬 페이지에 객체를 만드는것이 참은 아니다. 드문 경우에 있어, 큰 객체의 만드는 것은 당신의 소프트웨어의 성능(performance)을 향상 시킬 것이다. 왜냐하면 당신의 활성화 요구에 대한 활동이 증가하거나, 당신의 캐쉬에 대한 접근이 줄어 들또 혹은 둘다 일때 말이다. 당신은 어떻게 그러한 문제를 해결할 방법을 찾을 것인가? 상황을 점검하고 궁리하고 또 궁리해서 그문제를 해결하라(Item 16참고).)
         C++ 내에서의 진짜 temporary객체는 보이지 않는다.-이게 무슨 소리인고 하니, 소스내에서는 보이지 않는다는 소리다. temporary객체들은 non-heap 객체로 만들어 지지만 이름이 붙지를 않는다. (DeleteMe 시간나면 PL책의 내용 보충) 단지 이름 지어지지 않은(unnamed)객체는 보통 두가지 경우중에 하나로 볼수 있는데:묵시적(implicit) 형변환으로 함수호출에서 적용되고, 성공시에 반환되는 객체들. 왜, 그리고 어떻게 이러한 임시 객체(temporary objects)가 생성되고, 파괴되어 지는지 이해하는 것은 이러한 생성과 파괴 과정에서 발생하는 비용이 당신의 프로그램의 성능에 얼마나 성능을 끼칠수 있는가 알아야 하기때문에 중요한 것이다.
         임시 객체(temporary objects)가 함수 호출이 성공된후 만들어지는 경우를 첫번째로 생각해 보자. 이것은 함수에 인자를 전달할때 서로간에 인자들의 형(type)가 맞지 않게 묶여(bind)진 경우에 일어 난다. 예를 들자면, 다음과 같은 문자열에서 어느 한글자가 출현하는 객수를 세는 함수를 생각해 보자
         임시객체가 만들어지는 두번째의 경우 그것은 바로 함수에서 반환되는 인자들이다. 예를 들자면 operator+는 반드시 해당 인자들의 합을 표현하는 객체를 반환해야만 한다. 예를들어서 형이 Number로 주어졌다고 했을때 operator+는 다음과 같이 선언된다.
         컴파일러가 수행해주는 이런 종류의 변환은 참 편하다. 그렇지만 이런 변환에 의해 생성되는 임시 객체는 우리가 바라지 예상하지 않은 비용을 발생시킨다. 많은 사람들은 단지, 이러한 작업에 대하여 아무런 비용을 지불하지 않기를 바라는것 처럼 대다수 C++ 프로그래머들도 암시적 형변환이 비용에 아무런 영향을 끼치지 않기를 원한다. 그렇지만 이런 계산없이 과연 어떻게 수행할수 있을까?
         우리는 형변환을 제거하기 위하여 overload를 하였다. 하지만 다음과 같은 경우 문제가 발생할수 있다
         자 이제 잘 생각해 보자. UPInt와 int의 형을 위해서 우리는 모든 가능한 인자들을 operator+에 구현하기를 원한다. 저 위의 예제의 세가지의 overloading은 잘 수행되지만 양 인자가 모두 int인 경우에는 되지 않느다. 우리는 이것마져 수행할수 있기를 바란다.
         임시객체의 사용을 피하기 위한 operator 함수에 대한 overloading은 특별히 제한되는 것은 없다. 예를들어서 많은 프로그램에서 당신은 string객체가 char*를 수용하기를 바랄것이다. 혹은 그 반대의 경우에도 마찬가지이다. 비슷하게 만약 당신이 complex(Item 35참고)와 같은 수치 계산을 위한 객체를 사용할때 당신은 int와 double같은 타입들이 수치 연산 객체의 어느 곳에서나 유용히 쓰기를 원할 것이다. 결과적으로 string, char*, complex etc 이러한 타입들을 사용하는데 임시 인자의 제거 할려면 모두 overload된 함수가 지원되어야 한다는 것이다.
         아직, 80-20 규칙(Item 16참고)은 마음속에 중요하게 남아있겠지. 만약 당신이 그러ㅎ것들을 프로그램에 이용했을때 눈에띠는 성능 향상을 보이지 않는 좋은 생각을 가지고 있다면, overload된 한수들의 제거에 대한 이야기는 결코 논의의 촛점이 되지 않을 꺼다.
         전자의 경우 쓰기 쉽고, 디버그 하기도, 유지 보수하기도 쉽다. 그리고 80%정도의(Item 16참고) 납득할만한 효율을 가지고 있다. 후자는 좀더 전자보다 효율적이고 어셈블러 프로그래머들에게 좀더 직관적이라고 생각된다. 두 버전을 이용한 코드를 모두 제공하여서 당신은 디버그 코드시에는 좀더 읽기 쉬운 stand-alone operator를 사용하도록 할수 있고, 차후 효율을 중시하는 경우에 다른 버전으로(more efficient assignmen) 릴리즈(Release)를 할수 있게 할수 있다. 게다가 stand-alone을 적용시키는 버전으로서 당신은 클라이언트가 두 버전을 바꿀때 문법적으로 아무런 차이가 없도록 확신 시켜야 한다.
         T(lhs) 라는 표현은 T의 복사 생성자를 호출한다. 이것은 lhs와 동일한 값을 가지는 임시 객체를 생성한다. 이 임시 객체는 operator+=의 rhs로서 쓰이고, 그것은 operator+가 반환하는 결과 값이 된다. 이 코드는 필요없는 비밀(cryptic)로 보인다. 이것 처럼 하는 것이 더 낳지 않을까?:
          << setiosflags(ios::fixed) // 10자리 고정으로 부족한 자리 경우 빈자리
  • AcceleratedC++/Chapter14 . . . . 24 matches
         이렇게 2가지의 추상적인 기능을 조합해서 만들게 되는 것은 허술한 클래스 설계때문인 경우가 많다.
         만약 y가 x의 멤버라면 이는 옳다. 그렇지만 어쩌다가 y를 가리키게 된 경우라면 이는 옳지 않다.
         13.3.1절의 첫번째 해결법에선느 이를 위해서 포인터를 사용하여서 Core 혹은 Core로 부터 파생된 객체들을 생성하여 컬렉션 내부의 포인터들로 가리키도록 하였다. 따라서 이 경우 사용자 코드는 객체의 동적생성, 해제에 관련된 것들을 처리할 책임이 있었다.
         || * 포인터를 복사하는 것은 그 대상 객체를 복사하는 것과는 다름. [[HTML(<BR/>)]] * 포인터의 소멸이 그 객체의 소멸을 의미하지 않는다. (memory leak) [[HTML(<BR/>)]] * 포인터 소멸시키지 않고, 객체를 소멸할경우 dangling pointer 발생. [[HTML(<BR/>)]] * 포인터 생성시 초기화하지 않으면, 포인터를 바인딩되지 않은 상태가된다. ||
         마지막 2가지의 경우는 그 포인터를 다른 곳에서 참조할 경우 어떤 일이 일어날지 알 수 없다.
          || * Handle은 객체의 참조값 [[HTML(<BR/>)]] * Handle은 복사가 가능하다 [[HTML(<BR/>)]] * Handle 객체가 다른 객체에 바인딩되어 있는지 확인이 가능 [[HTML(<BR/>)]] * Handle클래스가 가리키는 객체가 상속구조의 클래스형을 가리킨다면 virtual 에 의해 지정된 연산에대해서 다형성을 제공한다. ||
          즉 Handle이 소멸되면 Handle이 가리키는 객체도 소멸되게 된다. 사용자는 바인딩이 안된 객체를 가리키는 핸들을 만들수는 있지만 이 경우 핸들에 접근하게되면 예외 상황을 발생하게된다. (아니면 처음 생성시 객체가 바인딩 되어있는지를 검사하도록 하면 된다.)
          throw runtime_error("unbound Handle");
          throw runtime_error("unbound Handle");
         using std::domain_error;
          } catch (domain_error e) {
          else throw std::runtime_error("uninitialized Student");
          else throw std::runtime_error("uninitialized Student");
         어떤 경우에 프로그래머는 Handle이 대상 객체를 복사하는 형태가 아니라 단지 가리키는 형태로만 사용되기를 바랄 수 있다. 즉 동일한 객체를 2개의 다른 Handle 이 가리킬 수 있다는 말이다.
         이경우 대상객체의 해제는 객체를 가리키는 마지막 핸들이 소멸될때 행해져야한다. 이를 위해 '''레퍼런스 카운트(reference count, 참조계수)'''를 사용한다.
          } // 참조형으로 동작하는 Handle인경우. 카운터의 주소를 대상객체의 카운터의 주소로 초기화, 카운터를 증가시킨다.
          throw std::runtime_error("unbound Ref_handle");
          throw std::runtime_error("unbound Ref_handle");
         { // Ref_handle&를 인자로갖는 생성자와 마찬가지로 operator= 도 인자로 받은 대상이 Ref_handle 인 경우 카운터를 하나 증가시킨다.
          // 여기서 만약 자기 자신을 대입할 경우에는 객체의 참조의 카운터가 변화하지 않게된다.
  • PairProgramming . . . . 23 matches
          * Pair Refactoring - 꼭 소스 코드가 아니더라도 위키 페이지에 대한 ["문서구조조정"] 을 하는 경우에도 적용할 수 있다. 특히, 해당 토론이 벌어진뒤 양론으로 나누어졌을 경우, 각 의견 지지자들이 Pair 로 문서구조조정을 할때 이용할 수 있다.
          * 5분 Pair-Change - 장과 단이 존재하긴 하는데. 장점으로 본다면, 자신의 프로그래밍 차례가 빨리 돌아오면서 Pair 끼리의 Feedback 이 빠르다는 점에서 집중도가 높다는 점이 있다. 단, Junior 의 경우 자신의 사고가 성숙해질 시간을 방해할 수 있다. 이 경우 5분으로 시작, 점차적으로 Change 의 기간을 늘려주는 방법이 있다.
          * Junior : Junior Pair 는 의미가 없다? - 결과물에 상관하지 않는 학습의 경우 그 의미가 있다. Junior 의 실력 한계 내에서의 Output 으로도 의미가 있다. 처음 프로그래밍을 익히는 사람에게 Pair 를 하는 것 자체가 새로운 학습경험이 된다.
         Expert : Junior . 즉, 해당 분야에 대한 전문가 : 초심자 의 문제이다. 이 경우 그 진행이 늦어질 수 있다. (Expert : Expert는 최고의 효율성을 가진다. 물론 이것도 열린 마음을 바탕으로 한다. Junior : Junior 도 나름대로(?) 빨리 움직인다. (제대로 움직인다는 보장은 못한다. -_-;)) 그리고 Expert가 해당 프로그래밍에 대한 답 (코드)을 이미 알고 있는 경우 Expert의 집중도와 긴장감을 해치게 된다.
          * Pair 의 진행을 이끌어가는 것 - 프로그래밍의 흐름이라고 해야 할까. 디자인을 어느정도 선정도로 맞추고 어떠한 문제를 풀 것인가에 대한 약간의 선이 필요할 것 같다. 이 경우에는 초반 디자인이 허술했었다는 약점이 있었다. '전체적인 관점에서 무엇무엇을 하면 프로그램이 완성될 것이다' 라는 것. UserStory 만 생각하고 EnginneringTask 를 간과한 것이 큰 문제였다. (그때 EnginneringTask 에 대한 개념이 없었었다는. 어디서 함부로 주워만 지식. --; 사고를 하자 사고를. -_-)
         집중도는 거의 최고라는 점! (이 점에서 둘이 서로 동의를 했다.) 평소 혼자 프로그래밍할때는 중간에 웹서핑을 하는 등 주위가 산만해지는 경우가 많았다. 하지만 이 Pair 중에는 사람들이 프로그래밍과 토론에만 전념할 수 있었다. (오히려 중간중간 일부러 10분 휴식을 두어야 했다.)
         * Junior 로서의 실수 - 기존 앞에서의 경험에서는 상대적으로 내가 Expert 의 위치에서 작업을 하였다. 이번에는 Junior 의 입장에 서게 되었는데, 기존에 Junior 의 위치에 있었던 사람들의 실수를 내가 하게 되었다. 어려운 부분에 대해서는 이해를 제대로 하지 못했음에도 불구하고 Expert의 속도를 저해할지도 모른다는 생각을 하며 대강 넘어갔었다. (다른 Junior 의 경우도 PP에서 어려움을 겪는 부분중 하나가 이것일지도 모른다. 특히 선후배 관계의 경우) 하지만, 이는 오히려 사태를 악화시킬 수 있다. 프로그래밍 작업을 계속 Expert에게만 의존하게 되기 때문이다. 확실하게 개념을 공유해야 Observer 의 역할과 Driver 의 역할 둘 다 잘할 수 있다. (쉬운 일은 아니다. 확실히)
          * 보통 코딩을 주도하는쪽이 빨리 지치며 집중력도 떨어지게 된다. 특히 PairProgramming 의 경우는 상대편 Pair에 대한 배려상 해당 시간에 작업 이외의 다른 일을 거의 하지 않는다. (화장실도 자주 안간다;;)
          * Junior 의 위치에서 바라본 학습 효과 - 이전에 상경이형이 채팅 프로그램 만드는 법을 직접 보여줬을때가 생각이 난다. (그때 '자. 15분동안 하나 만들어줄께~' 하면서 후다다닥 MFC로 서버/클라이언트 예제를 바로 보여주던 모습은 잊혀지지 않는다;) Junior 의 입장에서 Expert 행동 하나하나는 Check Point 이다. 좋은 습관과 프로그래밍 스타일, 디버깅하는 모습을 직접 눈으로 확인할 수 있었다.
          * 대화 - 상대방이 '알고 있을 것이다' 라는 점도 실제는 모르고 있는 경우가 많다라는 생각을 해본다. 친한친구 이더라도, 상대방을 잘 안다라고 생각하더라도, 상대로부터 읽지 못한 정보는 너무나 많기에.
          * 협동 - 이번경우는 비교적 협동이 잘 된 경우라고 생각한다. Python 으로 문제를 풀기 위한 프로그래밍을 하는데는 석천이, Idea 와 중간에 데이터 편집을 하는데에는 정규표현식을 잘 이용하는 상민이가 큰 도움을 주었다. 적절한 때에 적절하게 주도하는 사람이 전환되었던 것으로 기억.
          * 집중 - 이번 경우에는 '시간제한' 이라는 것까지 있어서인지; 석천은 더더욱 프로그래밍 자체에 집중했다. (스크립트 언어 스타일의 접근방법과 이전의 TDD 연습도 한몫 거든듯. 조금씩 만들고 결과 확인해보고 조금 또 만들어보고 결과 확인을 했다. 단, 이번엔 Test Code 를 안만들어서, 뒤에가서 버그가 났을때 대체를 못했다는.-_-; 잘될때는 문제가 아니다. 잘 안될때, 문제상황에 대한 대처가 중요하다고 생각.)
         넷미팅, VNC 등의 개발 프로그램을 공유할 수 있는 프로그램과 음성채팅 등으로 Virtual PairProgramming을 할 수 있다. (오.. 좋아진 세상~) 단,PairProgramming 에 비해 아쉬운점들이 있다. (관련 책들을 찾아서 보여주지 못한다는 것 등등) 나중에는 PC카메라와 스캐너 등등 이용할 수 있지 않을까. ^^
         나는 일차적으로 switch코드를 없앨 수 있다는 점을 설명했다. 우리는 Connection클래스가 그다지 크게 바뀌지 않을 것이라는 것에 대해 동의했었고 이 점을 근거로 switch를 사용하는 것이 유지보수를 힘들게 하는가에 대해 질문했다. 솔직히 이정도 코드라면 누구나 수정할 수 있을 것이라고 생각한다. 그리고 그렇게 많은 시간을 필요로 하는 작업도 아니라고 생각한다. 파트너는 Connection을 생성하는 부분을 include 화일로 관리하고 그곳에 한번만 define문을 작성하면 문제가 없다고 주장했다.
         나는 이에 대해 하나의 프로젝트에서 여러개의 데이타베이스를 사용하게 될 경우 여러개의 추가적인 파일들을 관리해야 될지도 모른다고 했다. 그리고 new SqlConnection(); , new MySqlConnection()과 같은 방식으로 사용하는 것이 더 직관적인 것 같다고 설명했다.
         긴 토론 끝에 파트너는 나의 의견에 동의했지만 만약 계속 이런 속도로 작업이 진행된다면 회사에서 가만있지 않을 것이다. (어제도 TDD를 사용했었는데 기존의 코딩시간에 비해 3배정도 더 늦어졌다. 그리고 다 끝내지도 못했고 무엇을 먼저 테스트 해야할지 갈팡질팡했었다. 처음부터 함수단위 테스트만 시도해야겠다는 생각이 원인같다.)
  • BigBang . . . . 22 matches
          * long long 같은 경우에는 없을수도 있다.
          * 대부분의 경우 그냥 정수로 처리한다.
          * 포인터 값을 전달하는 Call-by-reference의 경우는, 포인터 값을 복사의 방식으로 전달하게 되므로, 일종의 call-by-value라고 볼 수 있다.
          * #ifndef NAME : #define NAME이 되어있지 않는 경우에 작동한다. 주로 헤더파일 중복 include를 막기 위해 사용한다.
          * 연산자 오버로딩을 한 경우, 객체 u와 v가 있으면, u+v == u.operator+(v) 와 같다.
          * stack이나 heap에서 데이터를 free 할 때, 실제로 포인터만 이동이 된다. 그래서 실제로는 데이터가 메모리에 남아있게 된다(기존의 값을 초기화화 할 필요없이 할당 플래그만 해제하면 되므로). 중간에 다른 곳에서 호출이 될 경우에 데이터가 덮어 써지는 문제가 발생할 수 있으므로, dangling pointer를 조심해야 한다.
          * printf의 경우에는 첫째인자로 형을 판단할수 있기 때문에 문제가 되지 않죠. 하지만 같은 이유에서인지 printf("%f", 3) 을 잘못출력하는 문제가 있습니다. 이 취약점을 이용한 해킹 방법도 존재하지요. - [안혁준]
          * string과 vector<char> -> 참조 카운팅을 안 하기 때문에, vector로 쓸 경우 더 빠를 수 있다.
          * 삽입과 삭제시 transaction(작업 하다가 오류가 날 경우, 돌아갈 수 있는 기능)이 가능한 경우
          * 무효화가 적어야 하는 경우에는 node 기반(list, set)을 사용해야 한다.
          * 이렇게 작성했을 때, arr.size는 0이 되지 않는다는 것을 확인할 수 있다.
          * vector의 삽입, 삭제가 일어날 때, 전체 배열 크기가 제한 크기(1024)를 넘어갈 경우, 2배 크기의 배열을 만들게 되는데, 이 때 각각에 해당하는 포인터가 전부 바뀌게 되므로 '무효화' 되는 것이다.
          * 이렇게 될 경우, widget은 계속 생성되는데, pop을 하면, 만들어진 widget은 계속 메모리에 상주하고, widget을 가리키고 있는 ar 항목들만 삭제된다. 그래서, shared_ptr을 사용한다.
          if(v.empty());를 써서 공백인지 확인한다.
          * 정의(Definition) - 구현이 들어 있는 경우.
          e.g. function에 call by value로 객체를 넘겨줄 경우,
          * #define을 사용하면 컴파일러가 잡아주지 못해서 에러를 발생시킬 가능성이 크다. 그러나 이 말이 #define을 사용하지 말라는 의미는 아니다! 케바케로서 #define이 const보다 맞는 경우도 존재한다.
          //의 경우 A가 초기화가 안될 수 있다. scope에 따른 문제가 발생 될 수 있다.
          * Macro Function이 필요한 경우 - inline template function으로 대체 하면 해결
          * 비트 수준 상수성의 한계 : const 함수에서 객체의 어떤 데이터 맴버는 건드리지 않고 데이터 맴버가 가리키는 데이터를 건드리는 경우는 막을 수 없다.
  • HolubOnPatterns/밑줄긋기 . . . . 22 matches
          * 요구사항의 변경같은경우 어쩔수 없지만 기술적인 부분이라면 개발자가 가장 힘있지 않나? - [김준석]
          * ~~그건 인도개발자만..~~ 원래는 의사결정은 가장 많은 정보를 가진 사람이 내려야하는데, 기술에 대한 결정권을 기술과 거리가 먼 관리자등이 내리는 경우가 있다고 합니다(까라면 까 식으로). 이때의 의사결정권자는 모순적 상황에 처해있을 거란 글을 봤는데ㅋㅋ 1. 기술에 대한 지식이 적거나 거의없다. 2. 지식은 없지만 기술에 대한 확고한 입장을 가지고 있다. - [서지혜]
          * 현실에서는 한 패턴에 참여하고 있는 객체와 클래스가 동시에 다른 패턴에서도 사용되는 경우가 매우 많다.
          * 미래에 변화될 것이라 생각하기 때문에 코드를 복잡하게 하는 것은 좋은 생각이 아니다.(적어도 내 경우는 미래를 예측하려 할때마다 내 예상이 빗나갔다.)
          * 요구 기능을 구현하는게 어렵다며 맘대로 다른거 붙이는 사람도있음.. 예를들면 파일을 삭제할때 복구기능을 만들기 싫어서 확인 다이얼로그를 띄우지.. - [서지혜]
          * 확실히 근근히 나오는 확인 팝업창 겁나 귀찮습니다. -[임상현]
          * 여러 패턴들이 서로 관련이 있으며 실제 프로그래밍할 때는 이들을 엮어 함께 사용하는 경우가 많다는 사실만 명심하면 된다.
          * 패턴 간의 연관성 의존성 때문에 한 패턴을 다른 패턴과 구분하기 어려울 수도 있다. 이럴 경우에는 정적 구조 대신 패턴의 의도에 초점을 맞추기 바란다.
          * 만약 빌 게이츠가 은행에 걸어들어와 계좌를 개설한 뒤 그의 모든 재산을 예금하겠다고 하면 어떻게 될까? 여러분이 은행 지점장이라면 절대 빌이란 고객을 놓치고 싶지 않을 것이다.
          * 이 말이 메소드가 값을 반화하면 안 된다거나 'get'혹은 'set'기능이 언제나 부적절하다는 것은 아니다. 객체는 때때로 시스템 전반을 흘러다니며 작업을 수행하도록 도와주어야 한다. 하지만 많은 경우 get/set 메소드는 private 필드를 접근하는 용도로만 부적절하게 사용되며, 이런 사용이 많은 문제를 발생시킨다.
          * 구현은닉이라는 원리는 객체 지향 시스템의 품질을 평가하는 좋은 지표가 된다. 클래스의 구현을 마음대로 바꾸어도, 심지어 기존 클래스를 버리고 새로운 클래스를 작성하더라도 이를 사용하는 객체의 코드에는 영향을 미치지 않을 수 있는가?
          * 코드가 올바른 방식으로 구조화되지 않았기 때문에 유지 보수가 필요 이상으로 어렵다는 것이다. 이런 경우 리팩토링이 아닌 프로그램의 재디자인이 필요하다.
          * '어떤 용도로 사용될지를 모두 예측할 수 없어'와 같은 문제는 자바 패키지 전반에 퍼져 있다. 이런 경우 이미 말했듯이 객체에서 모든 getter와 setter를 제거할 수 없다.
          * 어느정도 의심가는 부분이 있는경우는 꼭 고쳐야되게되더군 - [김준석]
          * 음.. 확실히 이 책은 구현상속의 장점에대해 충분히 알아들어야지 extends의 장점에 대해 이해할수 있을것 같다. 이런경우가 어떤때인지 모르니까 - [김준석]
          * 많은 패턴들이 구현 시 Abstract Factory에 의존 하는 경우가 많기 때문에 Abstract Factory는 일종의 빌딩 블록이 되는 패턴이라 할 수 있다.
          * 모든 것을 static으로 하는 전략은 단순하고 멋지지만 많은 경우 사용할 수 없다.
          * 객체를 추상적인 방법으로 생성하는 데 유용한 다른 패턴은 Strategy 패턴이다. 그리고 Strategy 패턴은 좀 더 일반적인 패턴인 Command 패턴의 특별한 경우라 할 수 있다.
          * '레벨이 낮아 해당 지역에 진입할수 없습니다.','퀘스트를 수행하는데 필요한 아이템을 가지고 있지 않습니다'를 머리에 띄우지 않을수 있어서 좋군. - [김준석]
          * 객체들(Observer)에 주기적으로 클록 틱(clock tick)이벤트를 통지한다. 이 경우는 Universe가 ActionListener 인터페이스를 구현한 익명의 내부 클래스를 통해 이벤트를 받는다.
  • AcceleratedC++/Chapter11 . . . . 21 matches
         실제로 클래스를 제작할 경우에는 클래스의 생성, 복사, 대입, 소멸의 고려하여 설계되어야한다.
          생성자가 하나의 인자를 받는 경우. 일반적인 대입 생성자와 혼용이 될 가능성이 존재하기 때문에 명시적인 생성만을 허용시키는 방법이다. (12.2 절에서 자세한 논의)
          list의 반복자를 구현하는 경우라면 ++ 연산을 통해서 노드로 연결된 다음 노드를 리턴하는 함수를 오버로딩해야하나, 여기서는 배열의 요소를 가리키므로 단순이 포인터를 리턴하는 것 만으로 우리는 임의 접근 반복자를 구현하는 것이 가능하다.
          오버로드 연산자의 명칭은 operator'''''op''''' 의 형태로 나타난다. 즉 {{{~cpp []}}}의 경우에는 {{{~cpp operator[]}}}로 나타낼 수 있다.
          const T& operator[](size_type i) const { return data[i]; }; // 이경우에도 레퍼런스를 쓰는 이유는 성능상의 이유때문이다.
          모든 멤버함수는 암묵적으로 한가지의 인자를 더 받는다. 그것은 그 함수를 호출한 객체인데, 이경우 그 객체가 const이거나 const 가 아닌 버전 2가지가 존재하는 것이 가능하기 때문에 parameter specification 이 동일하지만 오버로딩이 가능하다.
          const T& operator[](size_type i) const { return data[i]; }; // 이경우에도 레퍼런스를 쓰는 이유는 성능상의 이유때문이다.
          보통 디폴트 복사 생성자의 경우에는 클래스의 멤버 변수들을 단순히 복사만 하게 됩니다. 이때 만약 그 멤버 변수가 포인터의 형태라고 한다면 문제가 발생하게 된다.
          이 경우 한쪽의 객체가 수정되거나 소멸되면 이를 복사한 객체도 그 영향을 받게되기 때문이다.
          따라서 포인터의 경우 새로운 주소 공간을 할당받고 그 대상이 되는 값을 복사해야지 이런 문제가 발생하지 않는다.
          만약 this 키워드로 자기 대입 체크를 하지 않을 경우에는 오른쪽 객체를 해제한 뒤에 다시 왼쪽항에 대입하게 되므로 문제가 발생하게 된다.
          생성자, 소멸자, 복사 생성자, 대입연산자를 재정의 하지 않을 경우에는 컴파일러가 기 정의된 방식으로 이런 생성자의 기본형을 만든다.
          이 경우 멤버 객체(has-a)인 경우에는 재귀적으로 이런 디폴트 연산을 수행하며, 기본형(primitive type)의 경우에는 값에의한 방식으로 이런 연산들이 행해진다. 그러나 포인터의 경우 특별히 다른 일이 잃어나지 않으며, 포인터가 가리키던 공간은 해제되지 않는다.
          default constructor 를 사용하기 위해서는 객체의 멤버들이 디폴트 생성자를 가진 경우에만 정상적인 동작을 보장할 수 있다.
          || 소멸자 미정의 || 포인터 객체가 존재하는 경우 memory leak 이 발생 ||
          size_type new_size = max(2 * (limit - data), ptrdiff_t(1)); // 비어있는 벡터인 경우에는 1개만 할당한다.
  • Linux/디렉토리용도 . . . . 21 matches
         ''(적어도 나의 경우에는 그랬다)''
         lib 디렉토리에는 컴파일러를 통해서 혹은 만들어진 파일들이 잠조하는 라이브러리들이 존재한다. 또한 하부에 modules 디렉토리에 존재하는 커널 모듈은 특수장치를 설치했거나 제거했을 경우 커널이 자동적으로 모듈을 올리지 못할 경우 insmod, rmmod, modprobe 명령어를 통해서 이런 모듈을 다룰때 이용된다. 커널 모듈의 경우 2.4커널에서는 *.o, 2.6 커널에서는 *.ko의 확장자를 가지고 있다.
          * 이 디렉토리 내에 있는 파일을 cat 명령을 이용하여 보면 시스템 정보를 확인 할 수 있음.
          * 예) 인터럽트 정보 확인 ---> cat /proc/interrupts'''
         아파치를 비롯한 모든 서버의 환경설정 파일이 관리 되는 곳이다. 물론 사용자가 직접 바이너리로 설치했을 경우에는 이 곳에 위치하지 않을 수도있다. 그러나 대부분 패키지 관리자를 통해서 설치된 프로그램의 경우 이곳에서 설정이 가능하다. 직접 설치를 하는 경우라면 '''X11, apache2, init.d, rc.*, skel, xinitd.d''' 디렉토리를 많이 다루게 된다.
         바이너리 파일의 경우가 아니라 실제 시스템이 운영되면서 변화하는 자료를 저장하는 부분이다. 웹 서버의 기본 루트디렉토리가 보통 이곳에 존재한다. (alias 된경우는 예외) 일반적으로 로그가 위치하기 때문에 중요한 곳이다. 시스템에 보안 관계된 문제나 크래쉬가 발생했을 경우 로그 분석을 통해서 원인을 분석한다.
         보통 바이너리 프로그램을 설치할 경우 /usr/local 에 설치하여 일관성을 유지한다. jdk등을 설치할 때에고 관습상 /usr/local 에 설치를 해주고, 배포판이 패키지 형태로 jdk등을 제공할때에는 배포판을 통해 설치하는 것이 패키지의 통일성 및 관리의 편의성 면에서 좋다.
         예) test 사용자 추가 후 홈 디렉토리 확인하기.
         이 디렉토리에는 커널의 바이너리 이미지가 위치한다. 보통은 부트로더를 /vmlinuz 로 부팅하게 설정하고, 현재 내가 쓰고 싶은 커널의 심볼릭 링크를 /vmlinuz 로 설정하여서 이용한다. 이 경우 커널의 버전업이나 테스팅을 위해서 커널의 버전이 필요할 경우 관리상 용이하다.
         실제 파티션을 분할할때에는 어떤 목적으로 프로그램을 이용하는지에 대한 이해가 필요하다. 처음 설치하는 사용자의 경우에는 전체 파티션을 단일 파티션으로 잡고 설치를 해도 무방하지만 다중 사용자 계정을 지원할 용의가 있는 경우에는
         || /tmp || 500M/30G || 임시파일들이 저장되는 곳이다. Oracle DB의 경우 이 파티션이 적을 경우 설치시 문제가 된다고 함. ||
  • PragmaticVersionControlWithCVS/Getting Started . . . . 21 matches
         CVS서버 설치는 알아서 잘해라. -_-; 리눅스에서는 패키지로 설치하면 되고, 윈도우에서는 알아서 받아서 설치하면 된다. 이미 서버가 있으면 더 좋다. 내 경우에는 데비안 리눅스를 사용하는 관계로 apt-get install cvs로 간단히 설치를 끝냈다.
         Unix: cvs -d ~/sandbox init // 나의 경우에는 /home/CVSHOME 로 지정하였다.
         CVS클라이언트는 현재 우리가 쓰는 커맨드 형태의 클라이언트도 있지만, GUI형태의 TortoiseCVS, WinCVS등도 있다. (sourceforge.net에서 확인) 또한 IDE 자체가 CVS 클라이언트의 기능을 하는 것들도 있다. (ex. eclipse, dev-cpp)
         -m " " 프로젝트를 임포트할때 기록할 메시지임. (서드파티 코드를 사용하는 경우에 유리하다.)
         이런과정을 마치면 CVS 루트 디렉토리에 프로젝트가 정상적으로 생성되었는지 ls 명령으로 확인해보자.
         상기의 '''status''' 옵션으로 확인이 가능하듯이 cvs는 자동으로 현재의 파일이 로컬 작업공간에서 수정되었다는 사실을 판단할 수 있다.
         변경된 프로젝트는 '''commit''' 옵션으로 체크인시키는 것이 가능하다. 이때 '''-m''' 옵션으로 변경된 사항에 대한 주석을 다는 것이 가능하며, 만약 주석을 달지 않을 경우에는 vi 에디터가 실행되면서 주석을 저장할 수 있는 파일이 열린다.
         이러한 경우를 살피기 위해서 기존의 sesame 이라는 디렉토리이외의 공간에 저장소에 저장된 sesame을 받아야한다.
         상기와 같이 확인을 해보면 aladdin/number.txt 는 체크아웃을 통해서 저장소의 소스와 동기화를 해주어야한다는 상태를 나타내고 있다.
         반영되는 파일은 오로지 최신버전의 파일이 저장소에 존재할 경우만이다. 그렇지 않으면 파일은 다시 받을 필요가 없기 때문에 받지 않는다.
         다음과 같이 변경을 해서 동시에 두사람이 파일의 수정작업을 하는 경우를 가정해보자.
         cvs [commit aborted]: correct above errors first!
         이 경우는 동시에 수정이 일어나서 저장소의 최신버전이 반영되지 못했기 때문에 발생한 것이다.
         '''sesame/number.txt의 내용을 확인해보자'''
         === 박치기 - 변경 내용이 충돌하는 경우 ===
         상기의 경우에는 2가지 프로그램의 바뀐 부분이 동일한 줄에 해당하지 않기 때문에 큰 문제없이 cvs가 알아서 반영을 해주었다. 그렇나 만약 변경부분이 동일한 부분이라면 어떨까?
         cvs [commit aborted]: correct above errors first!
         3번재에서 알 수 있듯, 동일한 줄을 수정한 경우에는 충돌이 일어난다는 것을 알 수 있다.
         이런경우에 rcsmerge 는 그 변경을 다음과 같이 표현한다.
         이 경우 변경된 내용은 '''<<<<<<< >>>>>>> '''의 가운데에 존재하는 내용이 충돌을 일으킨 부분이다.
  • VendingMachine/세연/1002 . . . . 21 matches
         여기서는 저 위의 1-4번 원칙만 생각해 보겠습니다. 일단 이 코드가 제대로 돌아간다는 가정하에서 수정합니다. (문제는 제대로 고쳐졌는지 확인할 길이 적다는. -_-;)
          VendingMachine.PrintErrorMessage ();
          void PrintErrorMessage ();
         void vending_machine::PrintErrorMessage ()
          VendingMachine.PrintErrorMessage ();
         void vending_machine::printErrorInvalidCoinMessage () {
          printErrorInvalidCoinMessage ();
          printErrorInvalidCoinMessage ();
          printErrorInvalidCoinMessage ();
          void PrintErrorMessage ();
          void PrintErrorInvalidCoinMessage ();
         void vending_machine::PrintErrorInvalidCoinMessage () {
          PrintErrorInvalidCoinMessage ();
         void vending_machine::PrintErrorMessage ()
          PrintErrorMessage ();
         void PrintErrorMessage ();
         void PrintErrorInvalidCoinMessage (VendingMachine& vendingMachine);
         void PrintErrorInvalidCoinMessage (VendingMachine& vendingMachine) {
         void PrintErrorMessage ()
          PrintErrorInvalidCoinMessage (vendingMachine);
  • ScheduledWalk/석천 . . . . 19 matches
         위까진 프로그램의 트리중 1차 레벨이겠고, 이를 조금씩 재정의해나갔습니다. 컴파일 에러는 거의 뭐 무시를..~ 어차피 뼈대이므로. 컴파일 에러나 무한루프 등이 문제가 발생하는 경우엔 일단 void 형으로 리턴값을 적거나 return false; 식으로 채워넣습니다. 일단은 뼈를 잡는게 더 중요하므로.
         (Hierarchy Input-Process-Output) 의 경우엔 다음과 같습니다. (그림 첨부 필요)
          2. Depth-Module First. -> 깊이가 가장 깊이에 있는 것들이 쉬운 문제일 것이라 판단, 깊이가 깊은 모듈부터 구현하기로 했습니다. (일장일단인데, 그 대신 잘못 접근하면 Bottom-Up 이 되어버릴 수도 있기 때문에.. 이 경우 해당 함수가 하는 일을 명확하게 해줄 필요가 있다고 생각됩니다. 전체 구조 내에서의 역할을 잊어선 안되겠죠.)
         사실 이 방법은 위험합니다. char [] 일 journey 의 사이즈를 모르고 있기 때문이죠. 만일 journey 에서 입력받은 여정의 크기가 클 경우 메모리에러를 발생시킬 수 있습니다. 하지만, 일단은 성능은 따지지 않고 '가장 간단하게 돌아가는 소스' 를 생각하기 위해 그냥 저렇게 남겨둬봅니다. 원래라면 배열의 최대값보다 더 큰 여정이 나왔을 경우의 처리 등을 생각해야 합니다. 단, 이 문제에 대해선 InputRoachJourney () 함수 내로 지역화가 어느정도 가능합니다. 여기서는 Structured Programming 식으로 접근하려는 것이 목적이여서, 세부적인 문제에 대해서는 좀 덜 신경썼습니다.
         4. 함수 호출뒤 return 값에 대해서 printf나 cout 등으로 결과값을 확인해보기.
          assert (IsJourneyEnd(journey, currentPosition) == false); // 즉, 이 경우면 여정은 끝나지 않았음을 '단언' 합니다.
          2. Test Code 를 확인해본다.
          3. 실제 함수 모듈을 확인해본다.
         4. 구현. Test Case 통과 여부 확인하기.
         Test Case 에 대해 만족하는 가장 간단한 MoveRoach 를 일단 구현해봅니다. 본래의 Requirement 의 경우 해당 판의 최대범위를 넘어가면
         자. 이제 슬슬 ["RandomWalk2/TestCase"] 에 있는 ["AcceptanceTest"] 의 경우가 되는 예들을 하나하나 실행해봅니다.
         음.. Vector 자체로는 별 문제없어 보이네요. 그렇다면 다음은 실제 Roach를 이동시키는 Position 과 관련된 MoveRoach 부분을 살펴보죠. (여기서는 반드시 이동방향을 결정하는 함수와 실제 이동시키는 함수에 촛점을 맞춰야 합니다. board 배열의 값이 update 가 되기 위해선 어떠어떠한 값에 영향을 받는지를 먼저 머릿속에 그려야 겠죠.) 그림이 안 그려지는 경우에는 Debugger 와 Trace, break point 를 이용할 수 있습니다. 하지만, 구조화를 잘 시켜놓았을 경우 해당 문제발생시 버그 예상부분이 어느정도 그림이 그려집니다.
         이 부분에 대해서 퍽 하고 깨우침을 얻었는데; (아이디어가 떠오르지 않을때 이 부분이 잘못되었음을 알려면 Debugger 를 써야겠죠.)
         바로 index가 -1 이 되었을 경우이죠. 그러므로 Modular 연산으로 계산할 수 없다.
         여기서 얻을 수 있는 교훈 - 이런 변환 부분은 차라리 함수로 만들자는 겁니다. -_-; 이 경우 OO Language 라면 1차원 배열을 이용한 2차원 배열 클래스를 만들어 쓰는 것이 가장 편합니다. 문제를 해당 배열 클래스 내로 지역화 시킬 수 있죠. 여기서는 일단 C로 만들었다고 가정하고 배제합니다.
  • AcceleratedC++/Chapter13 . . . . 18 matches
         몇 가지 추가사항을 제외하면 한클래스와 다른 클래스가 동일한 경우가 많다는 데에 착안해서 나온 개념이다.
         이 프로그램의 경우 기존 객체와 다른 부분은 동일하지만 대학원생의 성적을 다루는 경우에는 논문과 관련된 점수가 포함된다는 가정을 하고 만들어진다.
          private 보호 레이블로 지정된 멤버는 그 클래스 자체, friend 함수를 통해서만 직접적으로 접근이 가능하다. 이 경우 상속된 클래스에서는 부모 클래스의 private 멤버로의 접근이 필요한데 이럴때 '''protected'''라는 키워드를 사용하면 좋다.
         비록 함수가 요구하는 인자값은 Core 클래스 이지만 Grad는 Core를 기반으로해서 파생된 클래스이기 때문에 이 경우 name();를 호출하게 되면 g 객체의 Core::name() 부분이 호출된다.
          만약 이름이 아니라 최종 성적을 가지고 비교를 하고 싶을 경우를 다루게 된다.
          만약 위 함수에 인자로 전달된 객체가 Grad객체라면 그 객체에서 호출되는 grade는 Core::grade() 이어서는 안된다. 그렇게 호출될 경우 논문 점수가 적용되지 않은 성적를 리턴하기 때문이다. 따라서 Grad::grade() 의 함수를 호출해야 할 것이다.
          상기의 경우 Grad 객체를 인자로 전달할 경우 Grad객체의 Core객체의 요소만 복사되어 함수의 인자로 전달되기 때문에 Core::grade()가 호출되어서 '''정적바인딩(static binding)'''이 수행된다.
          만약 일반형의 변수로 virtual함수를 호출하면 객체가 항상 한가지 타입으로만 존재하기 때문에 정적바인딩이 된다. 그러나 포인터, 참조형의 경우 이렇게 할때에는 동적바인딩으로 동작하게 된다. 포인터의 형과 실제 포인터가 가리키는 데이터형이 다른일이 생기기 때문이다. 따라서 이 경우 virtual 멤버함수는 '''런타임에 동적으로 바인딩''' 된다.
          } catch (domain_error e) {
          } catch (domain_error e) {
          위의 프로그램은 할당되지 않은 Core 공간에 값을 대입하려하기 때문에 에러를 발생시킨다. 프로그래머가 객체에 필요한 공간을 직접관리. 읽어들이는 레코드의 종류를 판단해야함.
         using std::domain_error;
          } catch (domain_error e) {
          입력과 출력의 각 부분에서 그리고 컨테이너의 요소를 사용할때 포인터를 이용함으로해서 프로그램이 동적바인딩을 이용해서 상당히 간결해진 것을 확인할 수 있다.
          상기와 같이 빈 소멸자를 사용하는 것은 흔한 경우이다. 기본 타입의 소멸자를 virtual 로 만듦으로서 파생 클래스에서 발생하는 기타 요소들을 해제해야할 경우가 많기 때문이다.
          else throw std::runtime_error("uninitialized Student");
          else throw std::runtime_error("uninitialized Student");
          현재 상태의 클래스로는 복사생성자가 필요한 곳에서 과연 cp에 할당된 객체가 Grad인지 Core인지를 확인할 방법이 없다.
          // 포인터형인 경우에는 파생 클래스의 포인터를 사용하는 것이 가능하다.
          Student_info 클래스에서 Grad::clone()를 직접적으로 호출하는 경우가 없기 때문에 friend로 선언하지 않아도 무관하다.
  • PairProgramming토론 . . . . 18 matches
         한편, 보통 숙련자/비숙련자 가 pairing 할때는 한쪽 방향으로 프로그래밍 스타일 등의 무게가 치우쳐지기 쉽다고 생각하는데요. 보통 비숙련자인 사람이 수동적인 입장을 취하는 경우가 많기 때문에.. 다른 한편, 숙련자인 사람이 마음의 벽을 넘지 못하는 우를 범할때에도 비숙련자인 사람이 '내가 저 사람보다 잘 모르니까...' 식으로 끌려가는 경우가 있을수 있다고 봅니다. (실제로 가끔 제가 '설명할 수 없는 부분은 혼란시켜라' 라는 말을 실천에 옮기는 경우가 종종 발생한다는.. -_-;;) -- 강석천
         Strengthening the Case for Pair-Programming(Laurie Williams, ...)만 읽어보고 쓰는 글입니다. 위에 있는 왕도사와 왕초보 사이에서 Pair-Programming을 하는 경우 생각만큼 좋은 성과를 거둘 수 없을 것이라고 생각합니다. 문서에서는 Pair-Programming에서 가장 중요한 것을 pair-analysis와 pair-design이라고 보고 말하고 있습니다.(좀 큰 프로젝트를 해 본 사람이라면 당연히 가장 중요하다고 느끼실 수 있을 것입니다.) 물론 pair-implementation도 중요하다고는 말하고 있으나 앞서 언급한 두가지에 비하면 택도 없지요. 그러니 왕도사와 왕초보와의 결합은 아주 미미한 수준의 이점만 있을뿐 실제 Pair-Programming이 주창하는 Performance는 낼 수 없다고 생각됩니다. 더군다가 이 경우는 왕도사의 Performance에 영향을 주어 Time dependent job의 경우 오히려 손실을 가져오지 않을까 생각이 됩니다. Performance보다는 왕초보를 왕도사로 만들기 위한 목적이라면 왕초보와 왕도사와의 Pair-Programming이 약간의 도움이 되기는 할 것 같습니다. 그러나 우리가 현재 하는 방식에 비해서 얼마나 효율이 있을까는 제고해봐야 할 것 같습니다. - 김수영
         Pair 할때의 장점으로 저는 일할때의 집중도에 있다고 보고 있습니다. (물론 생각의 공유와 버그의 수정, 시각의 차이 등도 있겠지만요.) 왕도사/왕초보 Pair 시의 문제점은 왕도사가 초보자가 coding 때에 이미 해야 할 일을 이미 알고 있는 경우 집중도가 떨어지게 된다는 점에 있습니다. Pair 의 기간이 길어지면서 초보쪽이 중고급으로 올라가는 동안 그 문제들이 해결이 될 것 같은데, 아쉬운 점은 Pair 를 긴 기간을 두고 프로그래밍을 한 적이 없다는 점입니다. (하나의 프로젝트를 끝내본 역사가 거의 없다는.)
         그냥 프로그래머 차원인 걸로 알고있습니다. (지금은 바뀌었나?) 로코즌 사람들하고 스터디도 해보고 했는데, 솔직히 말하면 그쪽 사람들은 대다수가 우선 자신의 그릇을 비우지 않은 경우가 많은 듯 해서 좀 안타깝습니다. 리팩토링이나 유닛테스트 등을 말하지만 제가 보기에는 XP적이지 못한 게 많아 실망을 하게 되더군요. 공부는 엄청나게 하신 분들이지만, 달보다 자신의 손가락에 치우치는 우를 범했지 않나 싶습니다. --김창준
         ''왕도사와 왕초보 사이에서 Pair-Programming을 하는 경우 생각만큼 좋은 성과를 거둘 수 없을 것이라고 생각합니다.''
         이 말은 자칫하면 사람들을 호도할 수 있다고 봅니다. 할려면 정확하게 레퍼런스를 하고 인용부호를 달고 자신의 의견은 분리를 하세요. pair-implementation이 "앞서 언급한 두가지에 비하면 택도 없다"는 말은 어디에 나오는 말입니까? 그냥 자신의 생각입니까? 그리고, XP에서는 implementation time과 analysis, design time이 따로 분리되지 않는 경우가 많습니다. 코딩을 해나가면서 design해 나갑니다. Pair로 말이죠.
         ''그러니 왕도사와 왕초보와의 결합은 아주 미미한 수준의 이점만 있을뿐 실제 Pair-Programming이 주창하는 Performance는 낼 수 없다고 생각됩니다. 더군다가 이 경우는 왕도사의 Performance에 영향을 주어 Time dependent job의 경우 오히려 손실을 가져오지 않을까 생각이 됩니다.''
         ''이 말은 자칫하면 사람들을 호도할 수 있다고 봅니다. 할려면 정확하게 레퍼런스를 하고 인용부호를 달고 자신의 의견은 분리를 하세요. pair-implementation이 "앞서 언급한 두가지에 비하면 택도 없다"는 말은 어디에 나오는 말입니까? 그냥 자신의 생각입니까? 그리고, XP에서는 implementation time과 analysis, design time이 따로 분리되지 않는 경우가 많습니다. 코딩을 해나가면서 design해 나갑니다. Pair로 말이죠. (창준선배님이 쓴 글중)''
         결국 제가 말하고 싶은 것은 PairProgramming은 왕도사와 왕도사 그룹이 할 수 있는 최상의 해법(제 생각입니다만)이라는 것입니다.. 모든 방법론이 모든 경우에 적합하지는 않은 것을 생각해본다면 PairProgramming이 왕도사와 왕초보 그룹이 아닌 왕도사와 왕도사 그룹에 가장 적합한 것이 아닐까 생각해봅니다.
         왕도사와 왕초보를 어떻게 정의하느냐에 따라 좀 다를 수 있겠습니다. 제가 늘 말하듯이 "전문가"끼리의 PairProgramming은 일반적으로 성공적일 확률이 높습니다. 하지만 전문가일수록 자신의 프라이드와 에고가 강하기 때문에 PairProgramming의 장점을 충분히 이용 못하는 경우도 있습니다.
         그리고 팀 내부에 상대적으로 실력이 부족한 사람이 있을 경우 XP에서는 이 사람을 내보낼 것인지 아니면 그대로 쓸 것인지 여러면(이득/비용)에서 판단을 합니다. 만약 그대로 써야하는 상황이라면 PairProgramming이 아주 핵심적인 요소가 됩니다.
  • STLPort . . . . 18 matches
         본 문서는 상기의 페이지에 내용을 그대로 옮긴것입니다. 개인 홈페이지의 내용이기 때문에 링크가 깨질경우를 대비한 백업이므로 가능하면 원래의 페이지에서 보시길 바랍니다. 최소한의 원작자에 대한 예의이겠죠 ^^;;
          * '''src''': 재사용 바이너리를 빌드하기 위한 플랫폼 별 프로젝트 파일이 있는 디렉토리. (''주의: vc6.mak 파일이 있는지 확인해 보세요. 빌드에 중요합니다'')
          * '''test''' : STLport가 설치된 후 제대로 설치되었나 확인하기 위한 테스트 프로그램 소스.
          이때, stlport\new 헤더 파일의 2줄에서 에러를 일으키는 경우가 있는데요, 네임스페이스 std::를 붙여 주도록 합시다. (아래의 그림에서 if 다음의 2줄입니다)
          Upload:4-compileError.GIF
          1. 빌드한 라이브러리를 확인합니다. 별다른 조정을 해 주지 않았다면 아래와 같이 lib 디렉토리와 함께 만들어질 것입니다.
         == <!> 입출력 라이브러리를 빌드하지 않을 분들은? ==
          1. DOS 창을 열고, STLport 패키지가 풀린 위치를 기준으로 src 디렉토리(위에서 확인하셨죠?)를 찾아 갑니다.
         STLport는 상용이 아니기 때문에, 링크 시 사용하는 STLport 전용 C++ 런타임 라이브러리(입출력스트림이 있는) 직접 설정해 주어야 합니다. 이것을 제대로 이해하려면 우선 VC++가 사용하는 런타임 라이브러리를 알아 봐야 합니다. VC++6의 런타임 라이브러리는 VC98/lib 디렉토리에서 확인할 수 있는데, 정적/동적 링크여부에 따라 크게 {{{~cpp LIBxxx.lib}}} 버전과 {{{~cpp MSVCxxx.lib}}} 버전으로 나뉩니다. 프로젝트에서 조정하는 부분은 Project > Setting 메뉴로 열리는 C/C++ 탭입니다. C/C++ 탭에서 "Code Generation" 카테고리를 선택하면 '''Use Run-time Library''' 드롭다운 박스를 조정해 줄 수 있습니다. 여기서 디버그 정보 포함('''debug''') 유무, 런타임 라이브러리의 스레딩('''thread''') 모드, 동적 링크 여부('''DLL''')의 조합을 결정해 줄 수 있습니다. 긴 설명은 빼고, 간단히 정리하면 다음과 같습니다. (MSDN의 설명을 참고하여 정리하였습니다)
          * Debug 버전의 경우엔 각 런타임Lib 항목에 "Debug"란 문자열이 붙고, 각 이름의 .LIB앞에 "D"가 붙고, 각 환경변수에 "_DEBUG"가 추가됩니다.
          * 역시 마찬가지로, Debug 버전의 경우엔 각 런타임Lib 항목에 "Debug"란 문자열이 붙고, 각 이름의 .LIB앞에 "D"가 붙고, 각 환경변수에 "_DEBUG"가 추가됩니다.
         _STLP_USE_STATIC_LIB 상수를 정의한 후에 "Use Run-time Library" 설정을 <*><*threaded>으로 맞춘 뒤에도 {{{~cpp LNK2005}}} 에러와 {{{~cpp LNK4098}}} 경고가 동시에 나는 경우가 있습니다. 이런 에러가 나올 것입니다.
          LIBCMT.lib(osfinfo.obj) : error LNK2005: __alloc_osfhnd already defined in LIBC.lib(osfinfo.obj)
          LIBCMT.lib(osfinfo.obj) : error LNK2005: __set_osfhnd already defined in LIBC.lib(osfinfo.obj)
          <실행파일경로> : fatal error LNK1169: one or more multiply defined symbols found
          Error executing link.exe.
         이는, '''VC가 코드 생성 옵션을 무시하고 LIBCMT.lib을 기본적으로 덧대어 넣어주기 때문입니다'''. 실행파일을 만드는 경우라면 에러가 가장 성가실 테지만, 배포용 라이브러리를 만들 경우엔 경고도 없애 주어야 합니다. 이 에러와 경고를 없애기 위해서는, 위에 나온 링커 메시지 대로 /NODEFAULTLIB 옵션을 써야 합니다. VC IDE를 쓰고 계시다면 Project->Setting 메뉴를 선택하고 나오는 대화상자에서 '''"Link"''' 탭을 선택하시고, '''"Input"''' 드롭다운 항목을 고른 후에 '''"Ignore Libraries"''' 에디트 상자에 LIBCMT.lib를 써 넣으시면 됩니다.
         이제 다 끝났습니다. STLport가 제대로 설치되었는지 확인하는 의미에서, 패키지에 들어 있는 메이크 파일을 Visual C++을 사용하여 읽은 후에 빌드해 보세요.
         == nmake에 문제가 있을 경우 ==
         == 플랫폼 SDK과 같이 사용할 경우 "InterlockedIncrement" 관련 컴파일 에러가 날 때 ==
  • SmallTalk/강좌FromHitel/소개 . . . . 18 matches
         경우 후자를 선택할 것입니다. 일단 빠른 시간 안에 프로그램의 개발을 끝내 놓
         위의 간단한 벤치마크 실험에서, Object Pascal을 사용하는 Delphi의 경우는 실
         행하는데 0.5초도 소요되지 않은데 비해, Smalltalk의 경우는 약 5초의 시간이
         아울러, 위의 예와 같이 극단적인 경우는 실제 프로그래밍에서 극히 드문 일이라
         정말 쉽게 쉽게 넘어갈 수 있습니다. C 언어의 경우, Hello World 프로그램을 만
         Foundation Classes)라는 갈래 다발을 익혀야 하고, Delphi의 경우에는 VCL
         (Visual Component Library)을 공부해야 하며, Java의 경우네는 JavaBeans나 여
         을 수 있는 언어들에 비해서, Smalltalk의 경우에는 대화식으로 명령어를 수행할
         있으며, Dolphin Smalltalk의 경우에도 상용 제품과 공개용 제품을 같이 내놓고
         있습니다. 또한 Dolphin Smalltalk 상용판의 경우는 약 $50 정도의 가격으로 충
         꾸러미 형태로 판매되는 제품의 경우 $219 정도의 가격이면 충분히 구할 수 있습
         다른 객체 지향 언어의 갈래 다발보다 더 많은 것을 담고 있습니다. C++의 경우
         르는 Smalltalk의경우는 기본적으로 방대한 양의 갈래 다발을 가지고 있지만, 이
         그러나 Dolphin Smalltalk의 경우는 보통 구현되는 Smalltalk의 특성보다 한 단
         기억공간 소비가 심하다는 평가에 대해서, Delphi나 Visual Basic의 경우와 비교
         해 보십시오. 자원 측정기를 켜 놓은 상태에서 Delphi 4.0을 실행할 경우, 약
         니다.) 그러나 Dolphin Smalltalk의 경우에는 기본적으로 약 3%의 자원을 소비합
         경우에는 WIN32 API를 90% 이상 지원합니다. 따라서 응용 프로그램을 만드는데도
  • SmallTalk_Introduce . . . . 18 matches
         경우 후자를 선택할 것입니다. 일단 빠른 시간 안에 프로그램의 개발을 끝내 놓
         위의 간단한 벤치마크 실험에서, Object Pascal을 사용하는 Delphi의 경우는 실
         행하는데 0.5초도 소요되지 않은데 비해, Smalltalk의 경우는 약 5초의 시간이
         아울러, 위의 예와 같이 극단적인 경우는 실제 프로그래밍에서 극히 드문 일이라
         정말 쉽게 쉽게 넘어갈 수 있습니다. C 언어의 경우, Hello World 프로그램을 만
         Foundation Classes)라는 갈래 다발을 익혀야 하고, Delphi의 경우에는 VCL
         (Visual Component Library)을 공부해야 하며, Java의 경우네는 JavaBeans나 여
         을 수 있는 언어들에 비해서, Smalltalk의 경우에는 대화식으로 명령어를 수행할
         있으며, Dolphin Smalltalk의 경우에도 상용 제품과 공개용 제품을 같이 내놓고
         있습니다. 또한 Dolphin Smalltalk 상용판의 경우는 약 $50 정도의 가격으로 충
         꾸러미 형태로 판매되는 제품의 경우 $219 정도의 가격이면 충분히 구할 수 있습
         다른 객체 지향 언어의 갈래 다발보다 더 많은 것을 담고 있습니다. C++의 경우
         르는 Smalltalk의경우는 기본적으로 방대한 양의 갈래 다발을 가지고 있지만, 이
         그러나 Dolphin Smalltalk의 경우는 보통 구현되는 Smalltalk의 특성보다 한 단
         기억공간 소비가 심하다는 평가에 대해서, Delphi나 Visual Basic의 경우와 비교
         해 보십시오. 자원 측정기를 켜 놓은 상태에서 Delphi 4.0을 실행할 경우, 약
         니다.) 그러나 Dolphin Smalltalk의 경우에는 기본적으로 약 3%의 자원을 소비합
         경우에는 WIN32 API를 90% 이상 지원합니다. 따라서 응용 프로그램을 만드는데도
  • 새싹교실/2012/startLine . . . . 18 matches
          * 처음이라 간단하게 하려고 변수와 연산에 대해서만 말을 했는데, 간단하게 하려고 하니까 너무 내용이 간단해져서 뭔지 모르는 사이에 내용이 다 끝나버렸습니다. 그렇다고 잘 했느냐고 하면 그것도 딱히 아닌 느낌이네요. 앞으로는 실습 위주로 하면서 조금 더 자세하게 진행을 해야 하지 않을까 싶습니다. 경우에 따라서는 완전히 다른 방법을 써야 할지도 모르겠지만... 어쨌든 아는 것과 가르치는 것은 다르다는 것을 새삼 느낀 시간이었습니다. - [서민관]
          * 재현이가 기존에 아는 부분들(변수, 제어문) 확인.
          * 일단 재현이가 기존에 C를 어느 정도 공부했는지를 확인하기 위한 시간이라 따로 과제를 준비하지 못 했음.
          * 최재현 - 아는 범위를 확인하고 앞으로의 방향에 대해 얘기 했습니다. 다음에는 모르는 것들에 대해 배우고 아는 것은 확실히 배워야겠습니다.
          * 서민관 - 제어문의 사용에 대한 수업(if문법, switch.. for...) 몇몇 제어문에서 주의해야 할 점들(switch에서의 break, 반복문의 종료조건등..) 그리고 중간중간에 쉬면서 환희가 약간 관심을 보인 부분들에 대해서 설명(윈도우 프로그래밍, python, 다른 c함수들) 저번에 생각보다 진행이 매끄럽지 않아서 이번에도 진행에 대한 걱정을 했는데 1:1이라 그런지 비교적 진행이 편했다. 그리고 환희가 생각보다 다양한 부분에 관심을 가지고 질문을 하는 것 같아서 보기 좋았다. 새내기들이 C를 배우기가 꽤 힘들지 않을까 했는데 의외로 if문이나 for문에서 문법의 이해가 빠른 것 같아서 좀 놀랐다. printf, scanf나 기타 헷갈리기 쉬운 c의 기본문법을 잘 알고 있어서 간단한 실습을 하기에 편했다.
          * 간단한 이전 시간(if문, 반복문)의 복습과 배열의 사용에 대해 알아보았다. 그리고 이번 시간에 주로 한 내용은 함수가 왜 필요한지와 함수를 만드는 법, 함수를 사용하는 법 등이었다. 개인적으로는 함수를 꽤 중요하게 생각하는 만큼 함수의 필요성을 잘 캐치해 줬으면 좋겠다. 그리고 새삼 드는 생각이지만 환희의 질문이 중요한 부분을 잘 찌른다는 생각이 든다. 별다른 언급도 없었는데 함수 내에서 변수의 scope나 함수 내부의 이름 겹침 등에 대한 질문이 있었다. 그리고 중간에 함수 사용의 예제로 printf문을 약간 이상하게 쓴 코드를 보여줬는데 의외로 감을 잘 잡은 것 같았다. 현재 진행상황으로는 다음에 포인터를 다뤄야 할텐데 함수를 쓰는 것을 조금 더 연습을 시킬지 바로 포인터를 나갈지 고민이다. 당장 포인터를 했다가 어려워하지 않을까 모르겠다. - [서민관]
          * 재현, 성훈이의 함수에 대한 지식 확인.
          * swap 함수를 만들어보고 문제점 확인.
          * 처음에 간단하게 재현, 성훈이의 함수에 대한 지식을 확인했다. 그 후에 swap 함수를 만들어 보고 실행시의 문제점에 대해서 이야기를 했다. 함수가 실제로 인자를 그대로 전달하지 않고 값을 복사한다는 것을 이야기 한 후에 포인터에 대한 이야기로 들어갔다. 개인적으로 새싹을 시작하기 전에 가장 고민했던 부분이 포인터를 어떤 타이밍에 넣는가였는데, 아무래도 call-by-value의 문제점에 대해서 이야기를 하면서 포인터를 꺼내는 것이 가장 효과적이지 않을까 싶다. 그 후에는 주로 그림을 통해서 프로그램 실행시 메모리 구조가 어떻게 되는지에 대해서 설명을 하고 포인터 변수를 통해 주소값을 넘기는 방법(call-by-reference)을 이야기했다. 그리고 malloc을 이용해서 메모리를 할당하는 것과 배열과 포인터의 관계에 대해서도 다루었다. 개인적인 느낌으로는 재현이는 약간 표현이 소극적인 것 같아서 정확히 어느 정도 내용을 이해했는지 알기가 어려운 느낌이 있다. 최대한 메모리 구조를 그림으로 알기 쉽게 표현했다고 생각하는데, 그래도 정확한 이해도를 알기 위해서는 연습문제 등이 필요하지 않을까 싶다. 성훈이는 C언어 자체 외에도 이런저런 부분에서 질문이 많았는데 아무래도 C언어 아래 부분쪽에 흥미가 좀 있는 것 같다. 그리고 아무래도 예제를 좀 더 구해야 하지 않을까 하는 생각이 든다. - [서민관]
          * 개인적으로 현재 시점에서 과제를 낸다면 C의 문법을 익히기 위한 과제를 준비할 것 같은데 환희가 현재 시점에서 C 문법을 나름대로 잘 쓰는 만큼 그렇게까지 무리해서 과제를 낼 필요는 없지 않을까 싶다. 사실 언제쯤부터 어떤 과제들을 내야 할지 정확히 감이 안 잡히는 것도 있지만... - [서민관]
          * 저번시간에 했던 swap 함수에 대해서 간단하게 복습을 하고 swap 함수의 문제점에 대해서 짚어보았다. 그리고 포인터의 개념과 함수에서 포인터를 사용하는 방법 순으로 진행을 해 나갔다. 새삼 느끼는 거지만 call-by-value의 문제점을 처리하기 위해서 포인터를 들고 나오는 것이 가장 직접적으로 포인터의 필요성을 느끼게 되는 것 같다. 그리고 개념의 설명을 하기에도 편한 것 같고. 그 후에는 포인터에 대한 부분이 일단락되고 성훈이나 재현이처럼 malloc이나 추가적인 부분을 진행할 예정이었는데 환희가 함수의 사용에 대해서 질문을 좀 해 오고 그 외에도 약간 다른 부분을 다루다 보니 진도가 약간 늦어졌다. 그래도 포인터에서는 이해가 가장 중요하다고 생각하는 만큼 조금 천천히 나가는 것도 괜찮다고 본다. 그리고 앞으로의 목표는 일단 처음에 잡아둔 목표까지 무사히 완주하는 것이다. 원래 첫 진도 예정에 다양한 것들이 담겨있는 만큼 목표만 이루어도 충분히 괜찮은 C 실력이 길러지지 않을까 싶다. - [서민관]
          * 정모 전에 두 시간, 정모 끝나고 두 시간이 걸린 정말 긴 새싹이었습니다. ;;;; 처음 계획으로는 재현이나 성훈이랑 비슷하게 구조체 문법과 사용에 대해서 간단하게 다룰 생각이었는데 환희가 왜 구조체가 필요한지에 대한 이야기를 하면서 이야기가 많이 다른 방향으로 흘러갔네요. 일단 구조체가 필요한 이유를 추상화의 관점에서 추상화 한 타입(구조체)과 타입에 관한 연산(함수)을 제공하기 위해서라고 말을 했는데 그래도 직접 피부에 와 닿았을지 어떨지는 좀 걱정입니다. 역시 이런 부분은 직접적으로 경험을 해 보지 않으면 안 될 것 같네요. 한 시스템(도서관 관리 프로그램이나 은행 시스템 등)을 재현이, 성훈이랑 셋이서 쪼개서 만들어 보게 하거나 하는 게 좀 괜찮지 않을까 싶습니다. 나중에 시켜봐야지. - [서민관]
          * 전체적으로 문자열과 문자열을 다루는 함수만에 초점을 맞춰서 수업을 진행했습니다. 그런데 아무래도 첫 시간에 못지 않게 진행이 늘어졌던 시간이 아니었나 싶습니다. 사실 문자열 함수들은 단순 함수니만큼 인자들을 보고 쓰는 것에 익숙하다면 알아서도 보고 쓸 수준이긴 한데, 그래도 다들 그런 것을 찾아서 써 보거나 한 경험이 별로 없는 만큼 한 번쯤 그런 함수들을 찾아서 쓰는 시간을 가지는 것도 나쁘지 않지 않을까 싶었는데 생각보다 좀 진행이 늘어졌군요. 단순히 설명만 이어졌기 때문인가. 그래도 이번 시간에 굳이 문자열과 관련 함수를 다룬 것은 C언어에서 문자열을 단순한 char의 *가 아닌 하나의 타입으로 보고 그와 관련된 연산(함수)을 제공했다는 것을 한 번쯤 생각해봤으면 합니다. - [서민관]
          * LinkedList에서 구현할 연산들과 구현시 신경 써야 하는 부분들(경우의 수).
  • 페이지제목띄어쓰기토론 . . . . 18 matches
         영문제목의 경우 대문자 단위로 붙여 쓰면 {{{~cpp (ex: TheWikiName) }}} 페이지 표시해줄때 {{{~cpp The Wiki Name}}} 식으로 알아서 띄어서 찍어준다. 하지만 한글제목의 경우는 지원하지 않는다.
          * 사람들마다 띄어쓰기의 기준이 다를 수도 있다. 복합명사의 경우 기준이 애매하다.
          * 의미의 애매성을 발생시킬 수도 있다. (''아버지가방에들어가신다'' 같은 현상이 발생할 수도 있다.)
          * 영문 제목의 경우 모두 빈칸을 붙여서 사용한다. (제목으로 표시될때 자동으로 단어의 대문자 단위로 빈칸을 띄어주므로)
          * 한글 제목의 경우 붙여쓰기를 기본으로 하되, 띄어쓰기도 허용한다. (띄어쓰기에 따른 효과는 아직 검증되지 않았으므로, 별다른 제약을 가하지 않기로 함)
         문제를 시스템과 관련해서 제한을 두지 말고 생각해봅시다. 한글 띄어쓰기가 더 사용하기에 좋은지, 아니면 붙여쓰더라도 별다른 불편이 없는지. 만약 띄어쓰는게 더 좋은 방법이라고 모인모인을 수정해볼수도 있겠죠? 예를들어, 한글의 경우 마음대로 띄어쓰기를 하는 경우가 중복된 페이지를 생성하는데 문제가 된다면, 검색시나 새로운 페이지 생성시 white space 를 제외한 검색으로 페이지를 보여줄수도 있겠지요. 생각해보면 다른 '구현' 방법도 찾을 수 있을것 같습니다. 문제는, '문제'자체가 어떠한게 더 좋은 방법인지를 이야기해보도록 합시다. -- 이선우
         우선, 한국어는 영어와 달리 띄어쓰기를 하지 않아도 크게 불편하지 않습니다. 문자와 말의 특성 때문입니다. 하지만 이것이 띄어쓰기를 한 경우보다 정보 손실이 있다는 점은 사실입니다. 현재 모인모인에서는 {{{~cpp ["..."]}}}를 이용해서 확장위키이름을 사용하는 한, 띄어쓰기를 하든 안하든 상관이 없습니다. 띄어쓰기를 하는 것이 좋겠다고 생각을 한다면 그렇게 해보세요. 그리고 나서 토론해 보는 것이 좋을 것입니다. 현재 노스모크는 규칙 변경을 하기에는 비용이 너무 높습니다.
          DeleteMe) 위키네임이 주는 편리한 기능이란, 손쉽게 같은 내용의 중복을 방지하고 하나의 집약된 문서를 만드는 것인가요? 초기에 노스모크에서 일어난 한글 띄어쓰기 문제가 곧 영문의 경우에도 임의로 띄어쓰게 한 결과를 낳았고, 이로 인해 발생한 문제는 '중복된' 페이지의 양산,혹은 사용자가 원하는 페이지를 쉽게 찾을 수 없는데에서 기인하는지 알고 싶습니다. 전, 순수하게 띄어쓰기 자체가 사람이 문자나 내용을 인지하는데 나쁜 영향을 준다고는 생각하지 않습니다. (현재 자연스러운 글쓰기 형태는 지금 쓰는 문서처럼 띄어쓰기를 허용하니까요. 물론, 제목의 경우에도 예외라 생각하지 않습니다.). 정리해서, 띄어쓰기 자체가 띄어쓰지 않는것보다 좋지 않다고 생각하시는건지, 아니면 위키와 결부된 기능상의 문제인지 알고 싶습니다. -- 이선우
          거듭 말씀드리지만, 기능상으로는 제한이 없습니다. 그리고 띄어쓰기 자체가 붙여쓰기보다 나쁘다는 어처구니 없는 일반진술도 하지 않았습니다. 어떤 구체적인 컨텍스트 속에서 이야기를 해야죠. 위키네임이 주는 편리한 기능이란 단어를 붙여쓰면 자동으로 링크가 되는 것을 말합니다. 사람들이 FrontPage라고 하면 될 것을 {{{~cpp ["front page"]}}}나 {{{~cpp ["Front Page"]}}}, 혹은 {{{~cpp ["Frontpage"]}}} 등으로 링크를 걸었다는 것이죠. 또, 사실 사용자가 띄어쓰기를 하건 말건, 혹은 대소문자를 어떻게 섞어쓰건 일종의 분리층(separation layer)을 둬서 모두 동일한 페이지이름으로 매핑을 하는 방법이 있습니다. 하지만 이렇게 되면 새로운 규칙 집합(제가 말하는 규칙이란 사람들간의 규칙을 일컫습니다)이 필요할 것입니다. 국문 경우는 몰라도 영문 경우는 띄어쓰기를 하냐 안하냐가 아주 차이가 큽니다. 노스모크는 초기부터 영어 페이지이름을 많이 사용했고 현재도 그러하기 때문에 이런 문제는 꽤 중요했죠. 또 (영문 경우) 기존의 위키표준을 지킨다는 생각도 있었고요. 하지만 여기는 아직 출발단계이고 하니까 다른 실험을 해볼 수 있겠죠. 아, 그리고 생각이 난건데, 페이지이름을 띄어쓰기를 하게 되면, 사람들이 이걸 위키에서 말하는 어떤 고유한 "단어"로서의 페이지이름(위키의 페이지이름은 "단어"입니다. 그게 하나의 커뮤니케이션 단위이기 때문이죠.)이 아니고 게시판에서의 게시물 제목 수준으로 생각하게 되는 경향(affordance)이 있었습니다. 사실 위키에서의 페이지이름은 프로그래밍의 변수이름처럼 상당히 중요한 역할을 하는데, 붙여쓰기를 하게 되면 사람들에게 기존 의식틀에서 벗어나서 페이지이름이 고유한 것이고, 기존의 게시물 제목과는 다르다는 인식을 심어주는 데에 많은 도움이 되었습니다. 다른 원인도 있겠지만, 주변에서 페이지이름에 띄어쓰기 붙여쓰기 등 별 제한 없이 자유로운 곳일수록 페이지이름을 페이지이름으로 활용하지 못하는 경우를 많이 봤습니다. 만약 띄어쓰기를 허용한다면 오히려 더욱 엄격한 규칙과 이의 전파가 필요할지도 모르겠습니다.
          ''DeleteMe)'+' 라던지 '^' 등등의 경우를 말씀하시는 것 같은데요. --석천''
         역시 약간 다른 이야기긴 한데, 페이지 제목에 특수문자를 집어넣을 경우에 문제가 있긴 합니다. 바로 모인모인 검색의 문제인데, 'C++' 등의 '+' 같은 경우 검색시 만들어지는 정규표현식에 문제를 일으키는군요. -- 석천
  • 회칙 . . . . 18 matches
         제1조(명칭) 본 학회의 명칭은 ZeroPage이며 어떠한 경우에도 이 조항을 바꿀 수 없다.
         제5조(휴면) ① 정회원은 다음 각 호의 어느 하나에 해당하는 사유로 일정 기간 활동이 불가능한 경우 휴면을 신청할 수 있다.
         제6조(은퇴) ① 정회원은 다음 각 호의 어느 하나에 해당하는 사유로 향후 활동이 불가능한 경우 은퇴할 수 있다.
          ⑤ 탈퇴 또는 제명 처리된 경우에도 준회원으로 재가입할 수 있다.
          ⑤ 직전 대 회장은 현 회장이 동아리 운영에 대한 도움 요청 시 응할 의무를 가진다. 이에 응할 수 없는 경우 대행을 지명해야 한다.
          ③ 부득이한 경우 5일 이상 진행된 인터넷 투표에서 정회원 재적 인원 과반의 참여와 참여 인원 과반의 득표로 당선된다.
         제1조(명칭) 본 학회의 명칭은 ZeroPage이며 어떠한 경우에도 이 조항을 바꿀 수 없다.
         제5조(휴면) ① 정회원은 다음 각 호의 어느 하나에 해당하는 사유로 일정 기간 활동이 불가능한 경우 휴면을 신청할 수 있다.
         제6조(은퇴) ① 정회원은 다음 각 호의 어느 하나에 해당하는 사유로 향후 활동이 불가능한 경우 은퇴할 수 있다.
          ⑤ 탈퇴 또는 제명 처리된 경우에도 준회원으로 재가입할 수 있다.
          ③ 부득이한 경우 5일 이상 진행된 인터넷 투표에서 정회원 재적 인원 과반의 참여와 참여 인원 과반의 득표로 당선된다.
         제1조(명칭) 본 학회의 명칭은 ZeroPage이며 어떠한 경우에도 이 조항을 바꿀 수 없다.
         제5조(휴면) ① 정회원은 다음 각 호의 어느 하나에 해당하는 사유로 일정 기간 활동이 불가능한 경우 휴면을 신청할 수 있다.
         제6조(은퇴) ① 정회원은 다음 각 호의 어느 하나에 해당하는 사유로 향후 활동이 불가능한 경우 은퇴할 수 있다.
          ⑤ 탈퇴 또는 제명 처리된 경우에도 준회원으로 재가입할 수 있다.
          ③ 부득이한 경우 5일 이상 진행된 인터넷 투표에서 정회원 재적 인원 과반의 참여와 참여 인원 과반의 득표로 당선된다.
          1. 본 학회의 명칭은 ZeroPage 이며 어떠한 경우에도 이 조항을 바꿀 수 없다.
           4-1. 정모를 3회 연속 불참하거나 불참시 연락 부재일 경우.
  • Basic알고리즘/빨간눈스님 . . . . 17 matches
         무심한 관광객은 그 날로 돌아갔지만, 남아 있는 승려들은 생전 처음으로 눈 색깔에 대한 말이 나왔기 때문에 크게 동요하지 않을 수 없었다. 그리고 그 날 밤부터 그 섬에는 무서운 일이 일어나기 시작했다. 과연 어떤일이 일어났겠는가? |}}
          * 상협 의견 - 3가지 경우
          * 관광객이 거짓말한 경우 (눈이 빨간 스님이 아무도 없는경우) : 이 경우에는 모든 스님들이 섬을 떠나게 된다. 왜냐면 모든 스님들은 자신의 눈을 제외한 다른 사람들의 눈 색밖에 볼 수없는데 만약 다른 모든 사람들의 눈 색이 갈색이라면 자신의 눈 색이 빨간 색이므로 섬을 떠나야 한다고 생각하게 된다. 빨간색의 눈을 가진 스님이 아무도 없기 때문에 모든 스님이 이렇게 생각하게 된다.
          * 눈이 빨간 스님이 한분 있는 경우 : 이때 자신의 눈이 빨간 스님은 다른 모든 사람들의 눈이 갈색인것을 보고 자신의 눈이 빨갛다는 것을 알수 있고 섬을 떠나게 된다. 그리고 남은 스님들은 빨간 눈의 스님이 한분 떠난 것을 보게 된다. 그리고 각자 자신이 보는 다른 모든 스님들의 눈 색은 갈색인데, 적어도 한명은 눈이 빨간색이라고 했기 때문에 자신이 볼때 남은 스님들의 눈이 모두 갈색이더라도 자신이 100% 빨간 눈이라고 할수 없기 때문에 떠나는 스님은 없게 된다.
          * 눈이 빨간 스님이 여러명 있는 경우 : 이때는 자신의 눈이 빨갛더라도 다른 빨간 눈의 스님이 있는 것을 볼 수 있기 때문에 자신이 100% 빨간 눈이라고 확신할 수 없다. 떠나는 스님이 없게 된다.
          * 현태 의견 - 2가지 경우
          * 전체적으로 상협형의 의견과 유사합니다.^^ 글을 읽고 밑을 봤는데 형이 이미 의견을 올리셨네요.^^ 다른 경우가 관광객이 거짓말을 한 경우인데.. 저의 경우는 관광객이 거짓말을 할 이유가 없다고 생각해서..^^;;;; 다름 섬에 갔을때 괜시리 '당신중에 한명 이상은 눈이 빨갛네요.'라고 할 이유는 없지 않을까요.^^
          * 빨간눈을 가진 스님이 한 명일 경우, 빨간색 눈을 가진 스님의 시각에서 빨간눈을 가진 스님이 아무도 없다. 그럴경우 자신이 빨간눈을 가지고 있다고 알게되고, 그 날 밤 그 스님은 그 섬을 떠나게 된다.
          * 빨간눈을 가진 스님이 두 명일 경우, 빨간색 눈을 가진 두 스님들은 각자 자신들의 시각에 한사람의 빨간눈 스님이 보일 테므로, 그 날 밤 그 다른 스님이 섬을 떠날 것이라고 서로 생각하게 된다. 하지만 다음 날 아침 그 스님이 떠나지 않은 것을 알게되고, 빨간눈을 가진 각각 스님은 자신도 빨간눈인 것을 알게 된다. 그 날 밤 두 스님이 그 섬을 떠나게 된다.
          * 빨간눈을 가진 스님이 세명일 경우, 빨간색 눈을 가진 세 스님들 각자 자신의 눈에는 두명의 빨간눈 스님을 보게 될 것이다. 이 스님이 첫째날에도 안 떠나고, 둘째날 밤에 그 섬을 떠날 것이라 생각할 것이다. 하지만 다음날 아침, 떠나지 않은것을 보게되고, 자기자신도 빨간눈이구나 라고 알게 된다. 그래서 그 날 밤 세 스님이 떠나게 된다.
          * 그러므로 빨간눈을 가진 스님이 N명 일 경우, 한명의 스님이 그 스님들이 떠날 거라고 예상하는 기간은 N-1일이고, 자신이 만약 빨간색눈을 가졌더라면, N일 째 밤에 N명의 스님이 떠나게 됩니다.
  • MoniWikiPo . . . . 17 matches
         msgid "Error: No blog entry found!"
         msgid "Error: Don't make a clone!"
         msgstr "<b>가로선</b> ----는 블로그일 경우 적용되지 않습니다."
         msgid "Fatal error !"
         msgid "Error: Don't try to overwrite it"
         msgid "Error: tarball does not exists"
         msgid "Error: Page Not found !"
         msgid "Error: No entry found!"
         msgstr "이메일 주소 확인이 완료되었습니다"
         msgstr "새 비밀번호 확인이 완료되었습니다"
         msgstr "확인이 맞지 않습니다 !"
         msgstr "새 비밀번호 확인"
         msgstr "새 비밀번호를 확인해 주세요"
         msgstr "이메일을 확인해 주세요"
         msgstr "이메일 주소를 먼저 확인해 주세요 !"
         msgstr "이메일을 확인해 주세요"
         msgstr "이메일 확인"
         msgstr "이메일 주소를 확인해 주세요"
         msgid "Conflict error!"
  • WinSock . . . . 17 matches
         서버의 경우 1 user 1 thread 임.
          if (nSended == SOCKET_ERROR) {
          printf ("Error : %d n", WSAGetLastError ());
          if (WSAStartup (0x202, &wsaData) == SOCKET_ERROR) {
          printf ("error.. %dn", WSAGetLastError ());
          printf ("create socket error.. %dn", WSAGetLastError ());
          if (bind (socketListen, (sockaddr *)&local, sizeof (local)) == SOCKET_ERROR) {
          printf ("bind error.. %dn", WSAGetLastError ());
          if (listen (socketListen, 5) == SOCKET_ERROR) {
          printf ("listen error.. %dn", WSAGetLastError ());
          printf ("Error.... %dn", GetLastError ());
          if (NetworkEvents.iErrorCode [FD_ACCEPT_BIT] == 0) {
          printf ("Error.... %dn", GetLastError ());
          if (WSAStartup (0x202, &wsaData) == SOCKET_ERROR) {
          printf ("error.. %dn", WSAGetLastError ());
          printf ("create socket error.. %dn", WSAGetLastError ());
          printf ("Error.... %dn", GetLastError ());
          if (NetworkEvents.iErrorCode [FD_CONNECT_BIT] == 0) {
  • vending machine . . . . 17 matches
         설계하고자 하는 자동 판매기에서 사용 가능한 동전은 50원, 100원, 500원 짜리 3가지이고, 커피 값은 150원이라고 가정한다. 이 자판기는 커피 값 150원 이상의 돈이 입력되면 무조건 커피를 출력하며, 커피 출력 후에 커피값 이하의 잔돈이 남을 경우 잔돈을 반환한다.
         설계하고자 하는 자동판매기의 경우 사용 가능한 동전이 50원짜리, 100원짜리, 500짜리 3가지라고 설정하였음으로 이 회로의 입력은 당연히 50원짜리 동전이 입력되는 경우, 100원짜리 동전이 입력되는 경우, 500원짜리 동전이 입력되는 경우가 있을 수 있다. 입력에 대한 경우의 수는 동전이 들어오지 않는 경우, 50원 짜리가 들어오는 경우, 100원짜리가 들어오는 경우, 500원짜리가 들어오는 경우의 4가지가 되어 입력변수는 2개가 필요하게 된다. 2개의 입력변수를 각각 X, Y 라 하고, 동전이 입력되지 않을 경우에는 XY=00이 되고, 50원짜리 동전이 입력되면 XY=01이 되고, 100원짜리 동전이 입력되면 XY=10이 되고, 500원짜리 동전이 입력되면 XY=11이 된다고 가정한다.
         자동판매기의 출력변수로는 커피가 출력되는지의 여부를 나타내는 변수 C와 잔돈 반환을 나타내는 출력변수 E를 사용하기로 한다. 따라서 2개의 출력변수 C,E가 필요하다. CE=00 1)일 경우는 커피와 잔돈이 모두 출력되지 않는 상태이고, CE=01 일 경우는 커피는 출력되고 잔돈이 없는 상태, CE=10일 경우는 커피는 출력되고 잔돈이 50원인 경우, CE=11일 경우는 커피는 출력되고 잔돈이 100원인 상태를 가정한다.
  • 논문번역/2012년스터디/서민관 . . . . 17 matches
         작성자에 독립인 경우 뿐만 아니라 복수 작성자에 대한 실험도 IAM과 Bern 대학에서 수집한 필기 형태를 이용하여 이루어졌다.
         우리는 작성자 독립인 경우의 실험을 위해 250명 이상의 작성자가 만든 카테고리 [a..f]의 형태들을 이용했다. 그리고 복수 작성자인 경우의 실험을 위해 6명의 작성자에 의해 만들어진 c03의 일부를 이용하였다.
         우리의 시스템을 단일 작성자인 경우에도 평가하기 위해서 노인(Senior)들에게서 수집된 데이터베이스에서 제공하는 필기 형태를 이용한 실험도 하였다.
         우리의 경우에는 이미지의 높이와 4열의 넓이를 가진 윈도우가 2열만큼 겹쳐지면서 이미지의 좌측에서 우측으로 이동하였다. 그리고 한두 개의 기하학적 특징들을 추출했다.
         따라서 문자 당 하위 항목의 수와 allograph HMMs의 수는 발견적으로(heuristically) 결정된다. 예를 들어 복수 작성자 시스템일 경우 allograph의 수가 주어진 작성자의 수와 같음을 추정할 수 있다.
         우리의 경우에는 absolute discounting 을 이용한 bi-gram언어 모델과 backing-off for smoothing of probability distributions가 적용되었다.
         우리는 우리의 필기 인식 시스템을 평가하기 위해 세 종류의 실험을 했다. 단일 작성자, 복수 작성자, 작성자와 독립인 경우.
         단일 작성자인 경우의 실험은 노인(Senior) 데이터베이스에서 학습을 위해 282줄의 텍스트를 사용했고 테스트를 위해 141줄의 텍스트를 사용했다. 문자 수준의 bi-gram perplexity는 15.3이었다.
         [17]에서 각 글자의 오류율은 28.3%로 측정되었다. 어휘가 없는 경우에 84.1%였고, 특히 1.3k 어휘에서는 16.5%였다.
         어휘를 사용하지 않는 경우에 단어 오류율이 39.0%, 421개의 단어(문장부호 포함)를 포함하는 어휘를 적용하는 것으로 13.9%까지 떨어진다. 이것은 [11]에 출판된 단어 오류율 20.5%와 잘 비교된다.
         작성자 독립적인 경우에 allograph 모델을 응용하는 것은 복수 작성자 실험과 비교해서 뚜렷한 향상을 나타내지는 않았다.
         이와 같은 경우에서 어휘를 사용하지 않았을 때 단어 오류율은 60.6%였다.
         우리는 분할이 없는 off-line 수필 텍스트 인식을 위한 시스템을 소개하였다. 그리고 단일 작성자, 복수 작성자, 작성자에 독립적인 경우에 대한 몇몇 실험도 행하였다.
         어휘를 사용하지 않은 경우 단어 기반일 때 뿐 아니라 문자 수준에서도 유망한 인식 결과가 얻어졌다.
         이 인식 정확도는 문자 수준에서 통계적인 문자 모델을 적용한 기준선 시스템에 비해서 상당히 향상되었다. 그리고 특징 공간의 선형 판별 해석을 행하는 것으로 복수 작성자와 작성자에 독립적인 경우에 대해 인식 정확도가 향상되었다.
         allograph 문자 모델을 사용하는 것으로 인식 정확도 측면에서, 복수 작성자인 경우에 특히, 더 많은 향상이 이루어질 것이다.
  • HelpOnLinking . . . . 16 matches
         외부 링크는 {{{http://kldp.org}}}같이 그대로 적어놓으면 '''자동'''으로 http://moniwiki.kldp.org 라고 링크가 걸립니다. 여기서 주의할 점은, 링크를 적을때 한글 토씨를 그냥 붙여 적을 경우에 한글까지 링크가 걸리게 됩니다. 이럴 경우에는 {{{[http://moniwiki.kldp.org]}}}라고 적으면 [http://moniwiki.kldp.org]와 같이 '''강제'''로 링크될 URL을 지정해줘서 자동으로 링크가 걸리지 않게 합니다. 강제로 링크를 걸러줄 경우는 모니위키에서는 그 링크 앞에 작은 지구 아이콘이 생깁니다.
         모니위키에서는 기본적으로 외부링크라고 해도 새창으로 열리지 않습니다. 강제로 새창으로 열리게 하고 싶은 경우는 {{{[^http://kldp.org]}}}와 같이 맨 앞에 {{{^}}} 기호를 넣어주면 (모니위키 확장) [^http://kldp.org]처럼 링크가 걸리게 됩니다.
         만약 URL의 끝 부분이 이미지의 확장자일 경우는 ("{{{.gif}}}", "{{{.jpg}}}" or "{{{.png}}}") 그림이 그 위치에 삽입되게 됩니다.
         예를 들어 {{{http://moniwiki.kldp.org/imgs/moniwiki-logo.png}}}라고 적으면 http://moniwiki.kldp.org/imgs/moniwiki-logo.png 처럼 보이게 됩니다. 이 경우 역시 띄어쓰기를 하지 않으면 조사까지 링크가 걸리게 되고 그림이 자동으로 들어가지 않게 됩니다. 이 경우는 강제로 꺽쇠로 묶어주면 즉, {{{[http://moniwiki.kldp.org/imgs/moniwiki-logo.png]}}}라고 쓰면 [http://moniwiki.kldp.org/imgs/moniwiki-logo.png]와 같이 되고, 그림으로 들어가지 않는 대신에 링크를 그대로 보여줍니다.
         /!\ 이 문법은 매크로 문법과 충돌합니다. 예를 들어 {{{[[Date]]}}}라고 링크를 걸면 Date가 링크가 되는 대신에, Date 매크로가 호출되게 됩니다. 따라서 영문으로 된 페이지 이름을 연결할 경우는 매크로 이름이 중복되어 있다면 이중 대괄호로 링크를 걸 수 없습니다.
         공백을 포함하는 임의의 페이지 이름을 연결하고 싶은 경우가 있습니다.
         공백이 있고 대소문자도 마음대로 지정하고 싶은 경우에는 {{{["임의의 페이지 이름"]}}}으로 링크를 걸면 ["임의의 페이지 이름"]처럼 링크가 됩니다.
         일반 위키페이지의 경우에도 마찬가지 방식으로 {{{[wiki:FrontPage 대문]}}}이라고 쓰면 `FrontPage`로 연결되고 `대문`으로 표시됩니다.
         특별히 이 경우 {{{[wiki:FrontPage 대문]}}}은 {{{[:FrontPage 대문]}}}과 똑같습니다. (모니위키 1.1.4 확장)
         앞부분에서도 언급한 내용이지만, 자동으로 링크가 걸릴 경우 URL 주소 되에 공백을 넣어주거나, <http://moniwiki.kldp.org/wiki.php/FrontPage>와 같이 연결해주어야 합니다. 정리해보면
         이와같은 기본 형식과 함께, 모인모인/모니위키에서 지원: `wiki:`, `attachment:`. "`wiki:`" 는 내부링크 혹은 인터위키 링크를 뜻합니다. 따라서 `MoniWiki:FrontPage` 와 `wiki:MoniWiki:FrontPage`는 똑같습니다. 주의할 점은 "`wiki:`" 형식은 괄호로 연결되는 링크의 경우 반드시 사용해야 합니다. `attachment:`는 파일 첨부를 위해 사용됩니다.
          * 페이지 이름 없이 인터위키 이름을 다음과 같이 사용하는 경우 {{{[MoinMoin:]}}} [MoinMoin:] {{{[[MoinWiki:]]}}} [[MoniWiki:]]
         <!> 두개의 대괄호로 하는 경우 (모니위키 1.1.5 이후)
  • AcceleratedC++/Chapter12 . . . . 15 matches
          입력 연산자는 일견 객체의 상태를 바꾸기 때문에 멤버함수로 선언이 되어야 한다고 생각하기 쉽다. 그러나 이항 연산자의 경우 파라메터의 맵핑이 좌항의 경우 첫번째 우항의 경우 두번째인자로 받는데, 이렇게 될 경우 멤버함수로 >>연산자를 오버로딩하면 우리가 워하는 결과를 얻을 수 없다.
          s.data.clear(); // compile error. private 멤버로 접근
          do s.data.push_back(c); // compile error. private 멤버로 접근
          if(is) // 입력중 공백 문자를 만났을 경우 방금전에 입력으로 들어왔던 한문자를 무시한다.
          이런 경우의 함수를 '''friend''' 로 정의 하여 해결하는 것이 가능하다.
          이항연산자를 설계할 경우에는 변환(conversion)이 많은 도움이 된다.
          이항연산자는 비 멤버함수로 설계하는 것이 좋다. 이유는 멤버함수의 경우 첫번째 인자가 객체의 특정형으로 고정되기 때문에 자동 형변환을 이용할 수 없기 때문이다. 즉 대칭성(symmetry)를 유지하는 것이 가능하다.
          멤버함수로 이용되는 경우 우항 피연산자가 자동 형변환되어 좌항과 일치하지 않는 것과 같은 문제가 발생할 수 잇다.
         일반적으로 객체의 구조를 결정하는 생성자는 explicit 으로 내용을 구성하는 경우에는 암묵적인 실행이 가능하도록 하는 것이 일반적이다.
         Vec의 경우처럼 size_type 을 인자로 받는 경우에는 요소의 개수라는 구조를 결정하기 때문에 explicit 이 적당하다.
         이경우 istream 은 void *를 리턴하게 된다.
         그런데 istream 클래스는 istream::operator void*()를 정의하여 만약 입력에 문제가 있으면 void* 형으로 0을 그렇지 않은 경우에는 void* 를 리턴하게 함으로써 마치 bool 형처럼 사용하는 것이 가능하다.
         표준 string 의 경우에는 3가지 종료의 char* 형으로의 변환을 제공하는데
  • CleanCode . . . . 15 matches
          * -List 라는 식의 이름을 지을 때는 정말로 List의 API들을 지원할 때에만 -List라고 붙여주는것이 좋다. 이름을 저렇게 지으면 -List의 API들을 지원할 것 같은 느낌이 들기 때문에 아닐 경우에는 -s나 다른 방식으로 하는게 좋을 것.
          * 테스트 시에는 올바른 input이 제대로 들어오는지를 먼저 확인하고 나서 코드가 잘못되었는지 생각해볼 것.
          * 실제로는 쓰지 않는데 테스트를 위한 메소드를 추가하게 되는 경우가 있을 수 있지 않은가? -> java의 경우는 reflection을 사용하면 메소드의 추가 없이 처리가 가능한 경우도 있지만 그것보다도 테스트용 framework(mockito 등)를 사용하는것이 좋다.
          * [http://u1aryz.blogspot.kr/2011/12/gerrit-error-gerritsite-not-set.html Gerrit기동시에「** ERROR: GERRIT_SITE not set」]
          * Error Handling
          * 네 그래서 일부러 코칭이라고 썼어요ㅋㅋ 멘토링은 아닌 것 같고 티칭은 지양하고싶고, 스터디가 잘 되어가고 있는지를 확인하고 싶다는 맥락에선 코칭이 제일 유사한 것같아서리.. - [서지혜]
          * module.login(id, password).success(function() {...}).fail(function() {...})으로 수정할 경우.
          * 동감합니다. 제가 클린코드 스터디를 하는 이유는 궁극적으로 생산성 향상입니다(제가 요즘 강조하는? ㅋㅋ). 지혜 누나가 언급했듯 코드는 일단 동작해야 하는 것이 첫 번째. 제 취향대로 약간 추상화하자면 요구사항을 충족하는 것. 임베디드 개발에서는 퍼포먼스 향상을 위해 '정석적인(?)' 구조나 방법론을 깨는 경우도 있습니다. 요구사항을 충족하지 못 하면, 실질적으로는 아무 것도 생산하지 않은 것과 같을 수도 있으니까요. - [정진경]
          * spec에 지정되어 있지 않은 경우에 테스트 코드를 작성해야 하는가?
          * 아, 그런말 한 것 같네요. 이경우는 코드가 아니라 요구사항(아키텍처) 단계에서 정의가 필요한 일이네요. - [서지혜]
          * 실제 일하는데서는 어떤가요? 이런 부분에 대한 요구사항이 없을 경우에는 어떤식으로 처리를 하는지가 궁금합니다. 먼저 처리하고 어떻게 처리했다고 따로 보고하나요? 아니면 없으니까 이런걸 정의해줘야 한다고 건의를 하고 대답이 오면 그 때 처리를 하나요? - [서영주]
          - 객체 사용 코드는 대개 application 레벨인 경우가 많은데, 객체 생성 방법이 바뀌어도 사용 부분은 그대로 유지할 수 있다.
          * 작은 부분을 보았을 때는 나타나지 않는 특성이 전체를 보았을 때는 나타나는 경우를 말한다.
          * 코드의 성능 개선을 위한 부분적인 리팩토링이 이어지다 보면 어떤 패턴이 나타나는 경우를 예로 들 수 있다.
  • TestFirstProgramming . . . . 15 matches
         테스트코드는 프로그래머가 하려고 하는일, 즉 의도를 담아낸다. 이는 이 프로그램이 어떠한 시나리오로 돌아갈것인가를 먼저 생각해보는 기회를 저절로 제공해준다. Test가 가능한 코드는 run 을 시켰을때 어떤 결과를 낼지를 파악할 수 있는 코드이다. 이 경우 해당 모듈이 완성되었을때가 언제인지 그 목표를 분명하게 잡는 역할을 해준다.
         테스트코드가 완벽할 순 없다. 하지만, 테스트코드가 모든 에러를 잡아내지 못한다는 이유로 많은 버그들을 줄일 수 있는 테스트코드를 작성하지 않을 이유는 없다.
         프로그램이 길어지다보면 Test Code 또한 같이 길어지게 된다. 어느정도 Test Code 가 길어질 경우에는 새 기능에 대한 테스트코드를 작성하려고 할 때마다 중복이 일어난다. 이 경우에는 Test Code 를 ["Refactoring"] 해야 하는데, 이 경우 자칫하면 테스트 코드의 의도를 흐트려뜨릴 수 있다. 테스트 코드 자체가 하나의 다큐먼트가 되므로, 해당 테스트코드의 의도는 분명하게 남도록 ["Refactoring"] 을 해야 한다.
         전자의 경우는 일종의 '부분결과 - 부분결과' 를 이어나가면서 최종목표로 접근하는 방법이다. 이는 어떻게 보면 Functional Approach 와 유사하다. (Context Diagram 을 기준으로 계속 Divide & Conquer 해 나가면서 가장 작은 모듈들을 추출해내고, 그 모듈들을 하나하나씩 정복해나가는 방법)
         후자의 경우는 해당 코드의 구조를 테스트해나가는 방법으로, 해당 코드의 진행이 의도한 상황에 맞게 진행되어가는지를 체크해나가는 방법이다. 이는 MockObjects 를 이용하여 접근할 수 있다. 즉, 해당 테스트하려는 모듈을 MockObject로 구현하고, 호출되기 원하는 함수들이 제대로 호출되었는지를 (MockObjects 의 mockobject.py 에 있는 ExpectationCounter 등의 이용) 확인하거나 해당 데이터의 추가 & 삭제관련 함수들이 제대로 호출되었는지를 확인하는 방법 (ExpectationList, Set, Map 등의 이용) 등으로서 접근해 나갈 수 있다.
         Test - Code 주기가 길다고 생각되거나, 테스트 가능한 경우에 대한 아이디어가 떠오르지 않은 경우, 접근 방법을 다르게 가져보는 것도 하나의 방법이 될 수 있겠다.
         아까보다 훨씬 수월하게 진행되었고, 그 결과를 눈으로 확인했고, 결과를 눈으로 확인한뒤 '완료' 했다. TFP 라면 이를 코드로 작성하여 자동화 할 것이다. 자동화된 테스트는 앞으로의 추후 모듈 수정시에도 앞에서 내가 원하는 기능들이 여전히 작동함을 보장해준다.
         Random 은 우리가 예측할 수 없는 값이다. 이를 처음부터 테스트를 하려고 하는 것은 좋은 접근이 되지 못한다. 이 경우에는 Random Generator 를 ["MockObjects"] 로 구현하여 예측 가능한 Random 값이 나오도록 한 뒤, 테스트를 할 수 있겠다.
         이 경우에도 ["MockObjects"] 를 이용할 수 있다. 기본적으로 XP에서의 테스트는 자동화된 테스트, 즉 테스트가 코드화 된 것이다. 처음 바로 접근이 힘들다면 Mock Server / Mock Client 를 만들어서 테스트 할 수 있겠다. 즉, 해당 상황에 대해 이미 내장되어 있는 값을 리턴해주는 서버나 클라이언트를 만드는 것이다. (이는 TestFirstProgramming 에서보단 ["AcceptanceTest"] 에 넣는게 더 맞을 듯 하긴 하다. XP 에서는 UnitTest 와 AcceptanceTest 둘 다 이용한다.)
  • i++VS++i . . . . 15 matches
          i++; // 이렇게 하면 차이가 당연히 없지 않을까요? 이럴때는 선행이든 후행이든 증가한뒤에 printf에서 그 변수를 사용했으니..
         === 최적화하지 않을때 ===
         === 최적화하지 않을때 ===
          ++i, 나 i++ 둘다 상관 없는 상황이라면, ++i에 습관을 들이자, 위의 연산자 재정의는 [STL]을 사용한다면 일반적인 경우이다. 후위 연산자가 구현된 Iterator는 모두 객체를 복사하는 과정을 거친다. 컴파일러단에서 Iterator 의 복사를 최적화 할수 있는 가능성에서는 보장할 수 없다. 따라서, 다음과 같은 경우
         그냥 사용한 경우나, for 문에서 사용한 경우는 ++i 와 i++ 의 성능 차이가 없다. 그러나 함수의 전달인자로 사용한 경우는 ++i 보다 i++ 의 코드가 명령어 한개 정도 길어진다. 하지만 그냥 사용한 경우나 for 문에서 사용한 경우에는 i++ 을 쓴 곳을 ++i 로 서로 바꿔 써도 상관 없으나, 함수의 전달인자로 사용한 경우에는 i++ 을 쓴 곳을 ++i 로 바꾸면 실행 결과가 달라진다. 그러므로 함수에서 i++ 을 사용하고 있을 경우 프로그램이 한 줄 이라도 추가되지 않고 ++i 로 바꿀수 있으면 바꾸는 것이 더 효율적이다. 또한 그냥 사용할 경우나, for 문에서 사용한 경우는 ++i 를 쓰지 않아도 상관 없다. --["상규"]
         i++은 그 특유의 기능이 필요할 때만 쓰는것이 좋을것 같다. i++를 쓰면 다음과 같이 두줄이 한줄로 주는 경우가 있기 때문이다.
  • 병역문제어떻게해결할것인가 . . . . 15 matches
          * 서류 합격시에 확인 전화 하라고 문자가 오는데, 사이버병이라고 하면 담당자가 못 알아들음. 반드시 문자에 적힌 그대로 얘기할 것. (이번에는 S/W 개발병 이었음)
          * 이건 보통 워드를 많이 치는 행정병 같습니다. 자대 가서 인사과에 대기할때 인원이 필요하면 타자연습프로그램으로 워드쳐보라 합니다. 기본 300타 이상이면 가능성 있습니다. 밤에 잠 못자구 워드 치는 경우가 많습니다. 요즘은 많이 좋아졌다고 합니다.
          * 불복일 경우 : GP 를 같이 들어가거나, 수색대 수색 경계에 참여하거나 훈련에 참가한다.
          * 복일 경우 : 훈련이 전혀 없다. 청음실에서 행복하게 독서와 부족한 공부를 하며 군생활을 할 수 있다. 사단 직할 소속으로 대대에 파견 근무갈 경우 누구도 간섭하지 않는다.
          * 체계특기의 경우 개발 or 잡무 or 관제 를 하게되며, 정비 특기는 전산장비 정비 or 잡무를 하게된다.
          * 산업기능요원과 전문연구요원 같은 경우 복무만료 전까지 4주 기초군사훈련 기간을 선택할 수 있음. 복무기간에도 포함 됨.
          * 박사 전문연구요원 : TEPS, 대학원 성적을 통하여 일정 인원들에 한해 박사 과정 진학 후 교내에서 전문연구요원을 할 수 있음. 현재 과기원들도 박사 전문연 TO 감소로 인하여 경쟁이 어느정도 있다고 알려짐. 단 보충역의 경우 일정 조건만 만족하면 가능
          * 특별시/광역시는 안뽑는 경우가 많으니, 해당 지역에 근무하는 사람들은 인근 도지역으로 지원하게 된다.
          * 우리 학교 학생이 3군의 군장학생으로 선발될 경우 육군 ROTC를 제외하면 전원 학사장교로 임관합니다.(복무기간 의무3년+장학금수혜기간)
          * 해군의 경우 영어, 전공, 간부선발도구, 적성검사를 1차시험으로 봅니다.
          * 공군의 경우 영어, 전공, 국사, 간부선발도구, 적성검사를 1차시험으로 봅니다.
          * 중앙대의 경우는 육군 ROTC가 개설되어 있습니다. 따라서 육군 또는 해병대 장교로 복무하게 됩니다.
          * 육군 군장학생으로 선발될 경우 ROTC 과정을 거쳐 임관하게 됩니다. 이 경우 해병대 장교로 임관할 수 없습니다.
  • 새싹교실/2011/데미안반 . . . . 15 matches
          * 나중에 포인터를 사용하는 실습을 하다 보면 많은 깨달음을 얻을 수 있지 않을까 싶습니다...
          * 아무래도 성과가 바로바로 눈에 보이게 출력하여 확인할 수 있는 함수이다 보니, 초보자가 바로 이해하기 어려움에도 불구하고 처음에 배우게 되는 듯 합니다.
          assert(val1 == 7); //val1이 7인 경우 정상 종료, 아닌 경우 오류 출력
          assert(val2 == 4); //val2이 4인 경우 정상 종료, 아닌 경우 오류 출력
          * 기타 대입 연산자 사용 예에서 -= , /= , %= 한 결과를 assert(val1 == 7); 와 같이 assert함수 안에 넣어 확인하시오.
          // 이경우엔 int를 안 써주는게 맞나요???
          * assert는 '''강하게 주장하다'''라는 의미로 위와 같은 경우 val1이 7이 아니다! val2가 4가 아니다! 라고 주장한다는 의미입니다. 하지만 val1값은 7이고, val2의 값은 4니까 에러창을 띄워 주장이 잘못됐다고 알려주는 거에요. 전체적으로 의문사항은 assert문보다는 '''!='''의 의미를 잘 몰라서 그런 듯 합니다. == 는 같다, !=는 아니다라는 의미의 관계연산자입니다.
          * [강소현] - 4피에서 수업이 없는 줄 알고 괜히 이동했다가 다시 6피로 이동하는 번거로운 일을 했었는데, 앞으로는 얌전히 6피에서만 수업을 해야겠어요. 수요일 11시부터 12시까지 딱 새싹 시간에 다른 수업이 있는 줄 몰랐었어요 ㅠㅠ printf와 scanf에서 시간을 많이 투자해서, 급하게 연산자를 쭉쭉- 설명하고 끝내느라 기억에 남지 않을 것 같습니다. 따라서 연산자에 관한 간단한 과제를 내어 익히도록 하겠습니다.(?!) 준비를 잘 해와야하는데, 계속 부족한 강의라고만 하는 것은 겸손이 아니라 그냥 자기비하란 생각이 문득 들었습니다. 그 동안 푸념을 들어주어 미안했고, 앞으로는 그런 일이 없도록 할 것입니다.
          * [박성국] - 오늘은 if를 활용하는 방법에 대해서 자세히 배웠어요^^ 그리고 if와 비슷한 switch를 이용하여 다양한 경우를 출력해 보는것 또한 배웠어요:)
          * [강소현] - if,for,while,switch를 배우고, 실습을 병행하였습니다. 구구단에서 홀수만 출력하는 경우 i+=2 를 하거나, continue를 활용하는 사례도 시행해보았습니다. 다음 주는 시험 일주일 전인 관계로 수업을 휴강하겠습니다. 시험 끝나고 봐요~ㅁ~
          * [강소현] - 함수의 형태를 반환형이 있는 지의 여부와 매개변수가 있는 지의 여부에 따른 4 가지를 실습하여 차이를 알아보았습니다. 그리고 재귀함수에 대한 진도도 나갔으나, 아무래도 그냥 함수 한번 호출하고 끝낼 때보다 이해가 잘 가지 않는 듯 합니다. 다음 시간에 한번 더 복습할 예정입니다. 재귀함수로 만드는 factorial이나 gcd 같은 것을 점화식을 설명하고 보여주면 좀 더 이해가 쉽지 않을까 싶었습니다.
          * [강소현] - 한 시간은 정말 금방 가네요. 근데 왜 학교 수업 들을 때는 그리 길었던거지!? 재귀함수를 사용할 경우 항상! 빠져나올 수 있는 '''조건'''을 걸어야 한다는 것을 복습했습니다. 뭔가 도미노 원칙 어쩌구 하긴 했지만 정확한 게 아니라 비슷하다-고 했던거에요. 정확한 건 3학년 알고리즘 시간에 divide&conquer을 배우면...<< 간단히 설명하자면 한번에 풀기 힘드니까 나눠서 풀자는 내용입니다.
          * 위키 정리가 매우 알차네요!! 그런데 한편으론 이렇게 정리하려면 위키에 적는 것이 새싹교실 선생님에게 너무 부담스럽지 않을까 싶은 걱정도 듭니다. 즐겁게 정리하고 있다면 정말 좋은 일이지만 혹시 너무 부담스럽다면 덜 꼼꼼히 적어도 괜찮을 것 같아요~ - [김수경]
  • AcceleratedC++/Chapter7 . . . . 14 matches
          * map은 []연산자를 통해 키값을 통해서 접근이 가능하나, 이 경우 string type key이기 때문에 모든 배열의 요소를 돌기위해서 일반적인 방식을 선택하였다. map의 각각의 요소는 '''pair'''라는 자료의 타입으로 구성. map은 pair의 first 요소에는 key, second 요소에는 value를 담는다.
          * Visual C++ 6.0 에서 소스를 컴파일 할때 책에 나온대로 (using namespace std를 사용하지 않고 위와 같이 사용하는 것들의 이름공간만 지정할 경우) map<string, int>::const_iterator 이렇게 치면 using std::map; 이렇게 미리 이름공간을 선언 했음에도 불구하고 에러가 뜬다. 6.0에서 제대로 인식을 못하는것 같다. 위와 같이 std::map<string, int>::const_iterator 이런식으로 이름 공간을 명시하거나 using namespace std; 라고 선언 하던지 해야 한다.
          상기에서는 map<string, vector<string> >의 형태로 구현해야한다. 그러나 <adjective>, <location>, <noun>과 같이 동일한 키 값에 대해서 규칙이 여러개가 존재하는 경우를 다루기 위해서 '''map <string, vector< vector<string> > >''' 의 타입을 이용한다.
          Grammar::const_iterator it = g.find(word); // g[word]로 참조를 할경우 map 컨테이너의 특성상 새로운 map이 생성된다.
          throw logic_error("empty rule"); // 규직이 존재하지 않는 다면 word로 전달된 규칙이 존재하지 않는 다는 말이된다.
          // 즉 입력이 잘못된 경우가 된다.
          // <noun-phrase> 와 같이 연결된 문법이 <noun> 인경우에는 재귀적 함수 호출을 통해서 마지막 단어까지 내려간다.
          // 마지막 단어까지 내려갓을 경우 재귀 함수를 호출하고 bracketed = false 의 조건이 되기 때문에 재귀 함수가 종료된다.
          재귀함수의 호출은 반드시 함수의 내부에 재귀호출을 탈출 할 수 잇는 코드가 존재해야한다. 그렇지 않을 경우 stack_overflow가 발생한다.
          throw domain_error("Argument to nrand is out of range");
          RAND_MAX % n를 이용해서 임의의 수를 구할 경우 Pseudo 임의 값의 한계로 인해서 문제점이 발생한다.
          * n 이 작은 경우: rand()함수는 홀수 짝수를 번갈아 출력하는 성질이 있기 때문에 n이 2일경우 0과 1이 반복적으로 출력된다.
          * n 이 너무 큰 경우에도 특정한 수가 반복적으로 나타나게 된다.
          따라서 우리는 RAND_MAX를 n으로 나누어서 전체 RAND_MAX를 bucket이라는 단위로 나눈뒤에 이 bucket으로 rand()가 발생시키는 난수를 나누어 줌으로써 우리가 원하는 [0, n) 의 임의의 수를 얻을 수 있다.
         using std::getline; using std::logic_error;
         using std::vector; using std::domain_error;
          throw logic_error("empty rule");
          throw domain_error("Argument to nrand is out of range");
  • Linux/배포판 . . . . 14 matches
         자, 그렇다면 의문을 해소해보자. 운영체제의 중심은 무엇인가? 운영체제라고하는 것은 결국 하드웨어와 사용자 사이를 이어주는 가교라고 생각하면 된다. 이런 영역을 '''kernel'''이라는 용어로 부른다. 이 kernel 에도 종류가 대단히 다양한데... 그중에 하나가 리눅스이다. 리눅스이외에도 Mach, BSD, Darwin, Hurd 등등등 우리가 생각하는 것 보다 훨씬더 다양하고 많은 커널들이 존재한다. (대략 Mach 커널이 좀 유명하다. 모듈 커널의 장점을 이야기 하면서 리눅스의 커널의 비효율성에 대한 평가자료로 많이 이용되었다. 지금은 리눅스도 대부분의 장치들을 모듈로 올리는 것이 가능하지만..) 윈도우의 경우 이 커널은 관리하는 회사가 오로지 마이크로소프트뿐이기 때문에 OS패키지를 라이센스라는 이름 아래에 단독으로 공급을 하지만 리눅스는 이와 달리 커널은 공개되어있고 어떤 묶으로 묶어서 팔거나 발표를 하는 것은 자유롭기에 다양한 배포판이 존재한다.
         추가)요즘엔 CD안에 Linux 를 넣어버린 LiveCD라는 형태도 나온다.Knoppix, UbuntuLiveCD 등등 개인이 만들어서 배포하는 경우도 많다.
         국내의 배포판은 대부분 레드햇의 패키지 방식인 RPM(Redhat Package Manager)를 채용한다. RPM의 경우 단일 패키지르 중심으로하는 경향이 강하고 의존성에 상당히 관대한 패키지 방식으로 알려져있다. ''(데비안유저인 관계로 잘모른다.)'' 알려진 바로는 느슨한 패키지 의존성때문에 처음에는 편하지만 나중에 엉켜있는 패키지를 관리하기가 좀 까다롭다는 의견도 많다. 레드햇 리눅스는 현재 공개방식으로 배포되지 않는다. 기업용 혹은 웍스테이션을 위한 돈주고 파는 버전만 존재한다. 대신에 레드햇사는 페도라라는 리눅스 배포판을 지원하고 있으며, 레드햇의 사이트를 통해서 배포가 이루어진다. 대부분의 패키지가 CD안에 통합되어 있으며, 대략 최신 패키지 들이 패키징되어있다. (050626 현재 페도라4가 얼마전에 발표되었다 4+1CD) 페도라 리눅스는 레드햇의 불안정판 정도라고 생각하면 되고, 실제로 최신의 패키지들로 묶어서 내놓고 잇다. 페도라에서 얻어진 피드백을 통해서 레드햇에 반영하고 이로부터 안정적인 리눅스 서버 OS를 발표한다. ''ps) 의존성? 리눅스의 각패키지는 각기 다른 프로젝트로 진행되어 만들어진 것들을 다시 사용하는 경우가 많다. 따라서 각기 독립적인 패키지 만으로는 프로그램이 실행이 안되어 경우가 있는제 이런 경우 의존성이 있다고 말한다.''
         GNU에 정신에 입각해서 만들어지는 배포판이다. 공식명식 GNU/Debian Linux 이다. 데비안의 이름은 배포자인 이안, 그의 부인 데보라 이름을 땃다고한다. 패키징은 과거 dselect를 이용하였고, 현재는 aptitude 라는 툴을 기반으로 한다. ''(관리정보를 보관하기 때문에 서로 호환성을 갖지는 않는다고 한다.)'' 데비안의 안정판은 대단히 배포사이의 공백기가 긴 것으로 유명하다. 혹자들은 메인테이너들이 굉장히 신중한 사람들이라고 평가하기도 한다. ''(01년도 Woody를 시작으로 05년 Sarge 사이에 딱 하나의 안정판이 있을뿐이다. 대략 2년에 한번꼴이다.)'' 대신에 Stable, Testing, Unstable, Experimental 이라는 단계적 개념으로 패키지를 제공해서 사용자의 선택의 폭을 제공한다. 그렇지만 Unstable 이라고해도 페도라만큼 최신의 패키지들로 묶이지는 않고 어느정도 성숙이 되면 패키지로 포함되는 경우가 다반사이다. 안정적 서버운영을 위해서는 안정판을 설치하는 경우가 많고, 일반용도로는 Testing, Unstable을 설치한다. (www.kldp.org 가 현재 데비안 Sarge-stable 로 운영중이다.) 패키지방식은 의존성에 대한 철저한 관리가 특징이다. 데비안이 유명한 것은 바로 이 패키지 관리의 엄격함 때문이기도 하다. 그렇지만 최신의 기술로 만들어진 소프트를 원하는 이들에겐 그다지 좋은 덕목은 아니다. 네트워크를 통해서 인스톨하기 때문에 base-system 이상의 것들은 네트웍이 연결된 상태에서 설치가 가능하다. 대신에 모든 배포판은 CD1장으로 구성된다. (net-install의 경우 대략 100MB 정도) 현재는 데비안의 엄격한 패키징 방식에서 좀더 유연한 자식격 배포판인 우분투이 나오면서 상당한 인기를 끌고 있다. 우분투는 데스크탑용 OS를 표방하고 발표되어으며, 실제로 CD로 엔터만 누르면서 완전설치가 가능하다.
         리눅스의 대부분의 배포판은 각 CPU에 맞는 커널에서 운영이 되는 바이너리 형태를 중심으로 하고 소스파일은 곁다리로 다루는 경우가 대부분이다. 그러나 젠투 리눅스는 다른 배포판과는 좀 다르게 소스를 직접 컴파일해서 패키지를 관리한다. 이때 사용되는 매키지 관리자의 이름이 Portage 라는 것이다. ''(대략 리눅스 관련 사이트에서 emerge, ebuild, USE 라는 것들이 나오면 gentoo 이다.)'' 본디 Gentoo의 배포자는 BSD의 포트를 기반으로한 패키징 방식이 너무 마음에 들어서 리눅스도 이런 배포 시스템을 만들자는 취지하에서 배포를 시작했다고 한다. ''(덕분에 각기 다른 CPU 관련된 바이너리를 저장소에 보관하지 않기 때문에 미러 서버 입장에서는 좋을듯)'' 덕분에 Gentoo의 경우 실제 설치시에 커널 컴파일을 하면서 커널 모듈 설정을 해야하며, 세부적인 설정이 완전히 자동적으로 이루어 지지않는다. 또한 변변한 인스톨러도 없다. (Project가 진행중이긴하다) 리눅스를 좀 다루어본 사람들이 설치하고 쓴다.또 설치 시간이 컴파일 하는 시간과 같이 걸리기 때문에 엄청난 설치시간으로도 유명하다.
         리눅스를 처음 시작하면서 어떤 배포판을 선택하는 지는 중요하다. 같은 리눅스이기는 하지만 사실 대부분의 리눅서들은 패키지 매니저를 이용하여 프로그램을 설치하는 편이지, 자신이 원하는 버전이 패키지 트리에 없다던가 버그가 있는 경우를 제외하면 직접 제작사 홈페이지에서 바이너리를 설치하는 경우는 거의 없다. 이럴때 동일한 패키지를 쓰는 사람한테 묻기가 편하고 이해하기가 편하기 대문이다. 2005년 현재 리눅스를 시작한다면 현시점에서는 [http://www.ubuntulinux.org/ Ubuntu]를 가지고 시작해서 [http://www.debian.org Debian] 으로 옮겨가길 권한다. 동일한 패키징 방식을 가지고 있으면서 우분투는 데스크탑 리눅스를 표방하고 있는 만큼 다루기가 쉽기 때문이다. 우분투에서 기본을 익히고 직접 서버를 운영하는 수준으로 올라가면 데비안으로 옮겨가면 배포판을 바꾸는데에 대한 부담을 전혀 느낄 필요가 없다. 나의 경우 대략 2주일 정도를 밤새면서 이런 저런 문제를 해결하면서 왠만한 문제는 이제 스스로 해결할 정도가 되었는데... 한번쯤은 해볼 만한 도전이라고 생각한다. 쓰다보면 윈도우 없이도 살 수 있는 세상도 있다는 생각도 하게 된다. 실제로 리눅스를 쓰는 사람들은 가장 게으른 배포판으로 데비안, 젠투정도를 꼽는다. 그만큼 잘 안변하고 한번 설치하면 거의 새로 설치해야할 일이 없다는 것을 말하는 것이다.
  • MoreEffectiveC++/Operator . . . . 14 matches
         cout << r; // error!
         이런 경우에 operator==의 오른쪽에 있는 인자는 int가 single-argument constructor에 거칠수 없기 때문에 에러를 밷어 낸다.
         암튼 저 위와 같이 하면 이해가 갈것이다. 하지만 이럴 경우 요 짓거리를 못한다.
         위의 코드에서는 strlen() 함수내부에서 p에 관련한 null pointer 검사가 필요하지 않다. 왜냐하면 && 에서는 앞의 조건이 부정 즉, ( false && anything ) 의 경우에는 뒤의 조건(anything)은 수행조차 안하기 때문이다. operator ||의 경우도 특정 조건에서,(true || anything) 뒤에 코드를 수행하지 않은다는 것은 비슷하다.
         수많은 개발자들이 이런 단순한 원리를 프로그램 상에서의 짧은 진행(short-circuit)을 추구하는데 사용하였다. 그렇다면 C++에서의 객체들에게 operator ||, && 를 overload 시키면 짧은 진행을 추구하는데 도움이 되지 않을까? 그런데 하지 말라니 왜일까? [[BR]]
         일단 operator &&, ||는 이렇게 두가지의 경우로 둘릴수 있다.
         자 이 두경우 모두를 생각해 보면 1,2 양쪽 다 expression1, expression2 의 결과 값이 필요한 상황이다. 즉, operator && 나 operator || 의 경우 양쪽이 class인자든, 어떤 형태이든 반드시 결과 값이 필요하다. 위에도 언급했지만, 이미 많은 개발자들이 &&와 ||의 특성을 잘 알고 사용하고 있으며, operator &&, ||의 overload는 구동되지 말아야할 코드가 구동되는 의도하지 않은 오류가 발생 소지가 있다.
         보통 C++에서 용어들을 정확히 이해 못할 경우가 있다. 바로 ''new''operator와 ''operator new''가 그 대표적인 예가 될수있을 것이다. 다음의 코드를 보자
         당신은 생성자를 직접 호출하기를 원할때가 있을 것이다. 하지만 생성자는 객체(object)를 초기화 시키고, 객제(object)는 오직 처음 주어지는 단 한번의 값으로 초기화 되어 질수있기 때문에 (예-const 인수들 초기화에 초기화 리스트를 쓰는 경우) 생성자를 이미 존재하고 있는 객체에 호출한다는건 생각의 여지가 없을 것이다.
         해당 함수(construcWidgetInBuffer())는 버퍼에 만들어진 Widget 객체의 포인터를 반환하여 준다. 이렇게 호출할 경우 객체를 임의 위치에 할당할수 있는 능력 때문에 shared memory나 memory-mapped I/O 구현에 용이하다 constructorWidget에 보이는건 바로
         이거 간단히 보이지만 placement new의 전부이다. operator new의 역할은 해당 객체를 위한 메모리를 찾고(할당), 해당 포인터의 반환이고 placement new의 경우에는 호출자가 이미 메모리를 확보하였고, 단순히 포인터 반환만 해준다. 모든 placement new가 반드시 이런 pointer의 전달 역할을 한다. 그리고 size_t 인자가 아무런 이름이 없어도 반항 안한다. 자세한건 Item 6을 보면 이해가 갈것이다.
         그리고 이것의 의미는 당신이 초기화 되지 않은 raw로의 사용의 경우에는 new와 delete operator로 그냥 넘겨야 한다는 의미가 된다. 즉 이코드 대신에 다음의 예를 볼수 있을 것이다.
         별다른 특별한 지적사항이 없다. 여태 까지의 연장선이고 단 new를 이용한 배열 할당을 삭제할 경우
  • 임베디드방향과가능성/정보 . . . . 14 matches
         이제 제 개인적인 생각을 말씀드리죠. 먼저 임베디드 시스템이 쓰이는 용도에 대해 조금 시야가 좁으신 것 같습니다. 적어도 집에 PC가 설치되어 있는 곳에서 손쉽게 PC로 할 수 있는 일은 절대로 임베디드 기기로 나오지 않겠죠. 그리고 임베디드 기기에 "하드 달고 모니터 달고 USB니 뭐니 다 달고나면.."을 하면 절대 안됩니다. 이러면 이미 임베디드 기기가 이니고 general한 pc입니다. 임베디드 기기는 말그대로 application specific, implementation specific한 경우에만 그 의미를 가지죠. 이러한 분야는 적어도 당분간은 general한 tool(님 말씀처럼 visual한 tool들)이 사용될 수 없습니다. 그리고 최근 유행하는 embedded linux의 경우는 더 요원하죠.
         둘째로 기술적으로 말씀드리죠. pc의 경우는 application만 하면 됩니다. 그 좋은 visual tool들이 hw specific한 부분과 커널 관련한 부분은 다 알아서 처리해 줍니다. 하지만 임베디드 분야는 이 부분을 엔지니어가 다 알아서 해야 하죠. pc의 경우 windows를 알 필요없지만 임베디드 엔지니어는 os kernel을 만드시 안고 들어가야 합니다. 이 뿐만 아니라 application specific/implementation specific하기 때문에 해당 응용분야에 대한 지식도 가지고 있어야 하며/ 많은constraint 때문에 implementation 할 때hw/sw에 관한 지식도 많아야 하죠. 경우에 따라서는 chip design 분야와 접목될 수도 있습니다.(개인적으로 fpga 분야가 활성화 된다면 fpga도 임베디드와 바로 엮어질거라 생각합니다. 이른바 SoC+임베디드죠. SoC가 쓰이는 분야의 대부분 곧 임베디드 기기일 겁니다. ASIC도 application specific하다는 점에서 임베디드 기기와 성질이 비슷하고 asic의 타겟은 대부분 임베디드 기기입니다.) 대부분의 비메모리 반도체칩은 그 용도가 정해져있으며, 비메모리 반도체를 사용하는(혹은 설계하는 사람)을 두고 임베디드 엔지니어라 할 수 있죠. 사실 임베디드는 범위가 매우 넓기 때문에 한가지로 한정하기 힘듭니다.
         너무 낙관적으로 말씀드린 것도 같군요. 제 생각에 적어도 정부가 임베디드 분야에 차세대 산업이 될 것이라고 판단한 것은 옳다고 봅니다. 우리 정부만 그런게 아니고 세계적인 대세죠. 하지만 그에 따라 그 분야에 종사하는 사람 대우가 좋을 것이냐? 이것도 낙관적이라 말씀드리지 못합니다. 정부가 많은 인력을 쏟아 붙는다면 단순한 작업, 노가다식 일만 하면 it산업의 재탕이 될 것입니다. 적어도 정부가 나서는 일에서 엔지니어가 행복한 경우는 없었죠. 하지만 임베디드는 그 뜻처럼 타분야와 관련성이 높기 때문에 전문성을 기르기도 좋다고 생각합니다.(즉, pc산업과는 다르다..는 것이죠.)
         복사기의 경우는 OA기기가 주로 사용되는 곳이 사무실이고 이 경우에는 복사의 편리성을 위해 복사기에 PC가 임베디드 되었다고 해야 옳겠죠.(이 경우 pc가 임베디드시스템이 된 것이군요(?)..)
         일본의 경우 트론 프로젝트가 올해(작년인지 헷갈리네요.)로 20주년을 맞이한다고 하던데 트론 얘기를 신문에서 본 건 작년이 첨이었구요.(제가 신문을 잘 안 봐서 그럴지도..--;)
         그렇게 뜬적은 없습니다. 솔직히 요새는 국가가 나서서 바람을 일으키려고 무지 노력하는듯해보입니다. 유비쿼터스도 말뿐으로 끝날 가능성이 상당히 많은데다가, 실제 그게 얼마나 상업적으로 가치가 있느냐에 대해서 아무도 말 못하죠. 임베디드의 경우 국내에서 키울려고 무지 노력하지만, 생각보다 그 분야가 돈을 못벌기때문에(대기업하청하다가 다들 때려칩니다) 뜬다기보다는 언론플레이라고 봅니다. 싼값에 부려먹을려는... S사의 모 세탁기에 들어가는 모듈에 제품납품할려고 했다가 거의 공짜로 내놓으라는 압박이 있었었다는 얘기를 얼마전에 들었던 기억이 나네요.
         별로 안뜨는듯 한데요..임베디드 하는 업체는 많은데.. 매출은 그리 신통치 않은것 같고.. 핵심칩 설계회사만 돈을 버는듯.. 나머지는 거의다 칩 사다가 조립하는 노가다꾼으로 전락중이죠.. 유비쿼터스의 경우에도.. 고성능의 단말기를 대량으로 제조해서 보급하면 되기때문에.. 설계및 제조하는 사람들은 극소수의 인원으로도 충분합니다. 뭐 정부에서 하는거라면..웹디자이너꼴 나겠네요..
         그리고 과거에도 CPU를 사용하여 제품들을 제어하는 업무가 많았는데.. 그것을 운영하는데 인터럽트나..무한루프를 이용하여 제어를 한 반면에..요즘에 임베디드 시스템이라고 하는것들은 간단한 운영체계를 도입한게 다른데.. 이것도..별것 아닌데.. 왜 임베디드 엔지니어니..뭐니떠드는지 잘 모르겠습니다. 그냥 마이크로 프로세서를 이용하는 땜쟁이들이 기본으로 익혀야할.. 노가다이고... 핵심 부품 예를들면 ARM7의 코어부분등은 핵심기술을 가진 회사에서 독점하고있어서..그걸 이용해서 칩을 파는 업자나.. 프로그래밍짜는 엔지니어나..그냥.. 그들의 하수인에 불과할수도 있겠네요..요즘에는 임베디드 OS도 객체지향을 이용하고.. 그래픽 라이브러리들이 잘 나와있어서 WIN CE나 윈도우즈에서 제어용 프로그래밍 짜는 수준의 단순노가다로 넘어가고있는 추세입니다.. 하여간에 이것도 다들 하니까.뭐.. 별 영양가 없는것 같습니다.. 모 업체에서.. 벼레별거 다할수있는 기술적인 능력이있는데.(암9보드에 하드도달고 액정도달고..달수있는것 다 달고..) 막상 그 보드를 만들어놓고 쓸데가 없답니다. 요즘 추세를 보니까..몇년전까지도 고급기술자의 업무였던.. PC에서 기계제어하는것들도..이젠 전문대졸업자나..고졸자가 주로하는 일이 되어버렸더군요.. 제 생각에는 미래에는 엔지니어가 그다지 많이 필요하지는 않을것 같습니다. 소수의 천재들이.. 프로그래밍 제네레이터.. 임베디드 칩 제네레이터 만들어서.. 가상현실상에서..뚝딱 뚝딱 맞추면.. 결과물이 떡하니.그냥 나와버리는 시스템이되고.. 다른 대부분의 경우에는 시스템이 거의모든 상황을 커버할만큼 고성능이되어버려서..별 예외조치에대한 필요성이 없는것이죠.. 엔지니어링 분야도..워드프로세서가 지구상에 몇개 안되는걸로 다 카바되는것처럼..그리될거같고.. 하여간에.. 기술분야에서도 극빈층에 속하는 재화를 소비만 하는 덧샘 뺄샘도 모르는 대다수의 사람과..극소수의 모든것을 다 할수있는 초기술을 가진 과학자들의 두가지 집단만이 살아남을듯 하네요.. 아마도 그런 과학자들에 의해 사육되겠지요...
  • Android/WallpaperChanger . . . . 13 matches
          // 서비스 종료 요청이 들어온 경우 그냥 종료
          * 그림파일을 불러왔을경우 BitmapFactory에서의 이미지 사이즈 변경은 이미지를 늘리고 줄이기 때문에 기존 안드로이드 어플 배경화면에서 자르기로 들어간것과는 다르다.
          || 4/22 || DB연동 성공 Activity간 통신 확인 Service 실행 성공 개선점 : 1. DB중복현상 2. 삭제가 안됨. 3. 크기 조절. ||
          || 4/26 || 전체 Activity간의 Parcel데이타를 넘길수 있게 코드를 리펙토링(Refactoring)함. DB의 연결문제를 삭제 삽입 목록에 flag를 달아 해결. 파일을 선택해서 Path와 Name을 보여주는 Activity의 Thumnail을 만들어 보여주게함. Refactoring후 Service 잘작동 확인. ||
         || 5/1 || Image Gallery에서 불러와서 크기조절 해주는 Crop 작성. File 입출력을 지원하면서 Side Effect로 DB 기록과 실제 File의 존재 유무를 판단해야하는 경우가 생김 ||
          * 사실 확인
         애플리케이션을 개발할 때에는 이것을 명심하세요. 듀얼코어 개발 컴퓨터에서 실행하는 에뮬레이터에서는 충분히 잘 작동할지도 모르지만, 모바일 기기에서 실행할 때엔 그리 잘 되지 않을 것입니다. — 최고 성능의 모바일 기기라도 일반적인 데스크탑 시스템의 성능을 따라잡을 수는 없습니다. 그런 이유로, 다양한 모바일 기기들에게 최상의 성능을 보장하기 위해 여러분은 효율적인 코드를 작성하도록 열심히 노력하셔야 합니다.
         문자열을 반환하는 메소드가 있고 그 결과가 언제나 StringBuffer에 더해지게 되는 경우에 있다면, 짧은 수명의 임시 객체를 생성하는 대신 직접적으로 더해지는 방식으로 식별자와 구현방식을 바꾸세요.
         만약 (Foo,Bar) 튜플로 저장하는 컨테이너를 구현할 필요가 있다면, 직접 만든 (Foo,Bar) 객체의 단일 배열보다 두 개의 병렬 Foo[] 와 Bar[] 배열이 일반적으로 더욱 더 좋다는 것을 기억하십시오. (물론, 다른 코드들이 접근해야 하는 API를 설계할 때에는 예외가 있습니다; 이 경우 작은 속도 향상을 노리는 것 보다 좋은 API설계가 항상 좋습니다. 그러나 여러분의 내부 코드를 작성할 때에는 가능한 한 효율적인 코드가 되도록 해야 하겠습니다.)
         유사한 가이드라인은, 결코 "for"문의 두 번째 조건에서 메소드를 호출하지 말라는 것입니다. 예를 들어, 다음 코드는 간단하게 int 값으로 캐쉬 할 수 있는 경우임에도 큰 낭비가 되는 getCount()메소드를 매번 반복 마다 실행하게 됩니다:
         향상된 반복문(때로 "for-each"로 알려진 반복문)은 Iterable 인터페이스를 구현한 컬렉션들을 위해 사용될 수 있습니다. 이러한 객체들로, 반복자는 hasNext() 와 next()을 호출하는 인터페이스를 만들기 위해 할당됩니다. ArrayList의 경우 여러분이 직접 탐색하는 것이 좋을 수 있습니다만, 다른 컬렉션들에서는 향상된 반복문 구문이 명시적인 반복자의 사용과 동등한 성능을 보여줍니다.
         물론, 반대적 측면에서 열거형으로 더 좋은 API를 만들 수 있고 어떤 경우엔 컴파일-타임 값 검사를 할 수 있습니다. 그래서 통상의 교환조건(trade-off)이 적용됩니다: 반드시 공용 API에만 열거형을 사용하고, 성능문제가 중요할 때에는 사용을 피하십시오.
         또한, 정수에서도 어떤 칩들은 하드웨어 곱셈을 가지고 있지만 하드웨어 나눗셈이 없기도 합니다. 이러한 경우, 정수 나눗셈과 나머지 연산은 소프트웨어적으로 처리됩니다 — 만약 해시 테이블을 설계하거나 많은 계산이 필요하다면 생각해 보아야 할 것입니다.
  • CSP . . . . 13 matches
          raise IOError, "ACK expected but got %s"%ack
          except socket.error:
          raise IOError, "short netstring read"
          raise IOError, "short netstring read"
          raise IOError, "short netstring read"
          raise IOError, "missing netstring terminator"
          raise ValueError
          raise ValueError
          except ValueError:
          raise ValueError, "netstring format error: " + s
          raise IOError, "short netstring read"
          raise IOError, "short netstring read"
          raise IOError, "short netstring read"
          raise IOError, "missing netstring terminator"
  • CppUnit . . . . 13 matches
          // Dialog Based 의 경우는 dlg.DoModal ()을 실행하기 전에 적어준다.
         #include "stdafx.h" // MFC 인 경우.
         #include "hostapp.h" // MFC 인 경우 해당 App Class
         GUI Programming 을 하기 위해 winmain 이 시작인 코드의 경우(MFC GUI Programming 포함) 콘솔창이 뜨지 않는다. 이 경우 GUI Runner 를 실행해줘야 한다.
          * 초기 준비할때 삽질하는 경우가 많다. -_-; CppUnit 의 경우는 헤더화일들의 include 순서들이 중요하다. 그리고 MFC 의 경우는 stdafx.h 를 각각의 화일들마다 include 해줘야 한다. (API에서 CppUnit 는 어떨지 궁금해진다.)
          * 중간중간에 Rebuild 해줄 필요가 있다. (제대로 했다고 생각했는데 Test Case가 Failure 가 나는 경우에는 한번 의심할 필요가 있다.)
         MSVC에서 에러가 나는 경우 대부분은 CppUnit FAQ를 참고하면 해결할 수 있다. http://cppunit.sourceforge.net/FAQ
         2.2) Why does the compiler report an error when linking with CppUnit library?
         LINK : fatal error LNK1104: cannot open file "cppunitd.lib,"
         Error executing link.ex
         library path 문제일 것 같은데요. 아니면, CppUnit 이 컴파일 되어있는지 확인해야 할것 같습니다. (lib 디렉토리에 cppunitd.lib 화일이 있는지 확인) --["1002"]
  • PokerHands/Celfin . . . . 13 matches
         ////// 비길경우 비교를 위해
          if(turn==1) //블랙 턴일 경우
          if(turn==1) //블랙 턴일 경우
          if(turn==1) //블랙 턴일 경우
          if(turn==1) //블랙 턴일 경우
          if(turn==1) //블랙 턴일 경우
          if(turn==1) //블랙 턴일 경우
          if(turn==1) //블랙 턴일 경우
          if(turn==1) //블랙 턴일 경우
          if(turn==1) //블랙 턴일 경우
          if(turn==1) //블랙 턴일 경우
          if(turn==1) //블랙 턴일 경우
          if(turn==1) //블랙 턴일 경우
  • VonNeumannAirport . . . . 13 matches
          * ["1002"] 의 개인적으로 생각되는 '미숙' 했다고 생각한 점을 든다면, 평소에 프로그래밍을 하는 리듬이 아니였다는 점. 이전 스타일이라면 일단 문제를 보고 문제를 나누면서 시나리오를 어느정도 만들어 놓은 뒤, 그걸 검증해나간다는 느낌으로 테스트코드를 작성했었는데, 이번의 경우 정말 Extreme 하게 작업한 것 같다. (중반에 CRC 라도 한번 하고 싶었는데, 형에게 물어보고 왠지 '아 내가 알던 방법이 틀린걸꺼야' 하며 그냥 Test 만 생각하게 되었다.) 작업하는 중간 뭔가 석연치 않은 느낌이 들었다면, 아마 대강 이런 느낌이였던 것 같다. 전반적 시각을 한번정도 중간에 정리를 할 필요가 있을건데, 그런 시간을 두지 못한것.
          * load 를 발생시키는 예를 Passenger 뿐만 아니라 다른 여러가지를 둔다. ex) 여행객 가방, 컨테이너의 경우 traffic load 2, 4 를 발생시킨다.
          -> 이 경우 PassengerSet 이 따로 빠져있지 않은 경우 고생하지 않을까. PassengerSet 이 빠져있다면, 가방, 컨테이너 부분들에 대해서 case 문이 복잡해질듯.
          -> 이에 따라 Input 부분이 바뀌고, Input 부분이 클래스와 합쳐진 코드의 경우 더더욱 골치.
          * PassengerSet Case가 여러개이고 Configuration 은 1개인 경우에 대해서. Configuration 1 : 여러 Case 에 대해 각각 출력하는 경우.
          -> 역시 PassengerSet 이 따로 있어서 Configuration 과 같이 협동할 경우엔 쉽게 구현 가능. 그렇지 않은 경우 고생 예상.
          -> Output 쪽이 따로 나누어진 경우 금방.
  • VonNeumannAirport/1002 . . . . 13 matches
         C:\User\reset\AirportSec\main.cpp(57) : error C2664: '__thiscall Configuration::Configuration(int,int)' : cannot convert parameter 1 from 'class std::vector<int,class std::allocator<int> >' to 'int'
         Error executing cl.exe.
         AirportSec.exe - 1 error(s), 0 warning(s)
         이 경우 testOneToOneMove 가 깨지게 된다. 데이터형이 다르기 때문이다. testOneToOneMove 쪽 테스트 형을 똑같이 작성해준다.
         getDistance ()의 경우 두 city gate 간의 거리이다. 일단 스텁 코드를 작성해두고,
         C:\User\reset\AirportSec\main.cpp(84) : error C2660: 'getDistance' : function does not take 2 parameters
         Error executing cl.exe.
         AirportSec.exe - 1 error(s), 0 warning(s)
         C:\User\reset\AirportSec\main.cpp(24) : error C2660: 'getDistance' : function does not take 0 parameters
         Error executing cl.exe.
         AirportSec.exe - 1 error(s), 0 warning(s)
         에 대해서 traffic 이 600 이 나오는 것을 확인하는 테스트.
         결과 : ok. Configuration은 실질적인 데이터까지도 트레픽을 계산할 수 있는 수준까지 되었다. 테스트를 좀 더 붙여보자. 좀 더 어려운 경우인 앞단계의 데이터에 대해 해보자.
         Configuration 하나에 대해서는 된 것 같고. 또 테스트 들어갈 것이 없을까... 생각하던중, 이제는 여러개의 데이터가 들어가야겠다는 생각을 하게 되었다. 즉, Configuration 이 2개인 경우에 대해서.
         Configuration 이 2개인 경우에 대해서. 이 Configuration 을 가지고 있는 것을 Airport 라고 상정짓도록 하겠다. Airport 는 Configuration 을 등록할 수 있으며, 각각의 Configuration 경우에 대한 Traffic 들을 각 Configuration 에게 물어봄으로서 계산된 Traffic 들을 알 수 있다.
         간단한 두번째의 경우 예를 먼저 든다면.
         각 경우에 대해 첫번째 traffic 은 600이, 두번째 traffic 은 300 이 나와야 한다.
         왜 두번째 configuration 의 경우에 대해서 에러일까? 다시 configuration 으로; 테스트를 더 추가해 보았다.
  • XMLStudy_2002/Start . . . . 13 matches
          1 Invalid Documents : XML의 태그 규칙을 따르지 않거나,DTD를 사용한 경우에 DTD에 정의된 규칙을 제대로 따르지 않는 문서
          step2. DTD를 사용하는 경우 사용할 DTD 선정 또는 새로 설계하여 작성
          2. DTD(Optional) : DTD를 사용하는 경우에는 어떤 DTD를 사용할지를 선언한 내용또는 DTD가 포함
          *EMPTY : 컨텐츠 스펙이 EMPTY인 경우라면 이 엘리먼트는 내용으로 아무 것도 갖을 수 없다는 것을 의미하고 empty element로 사용
          *Public Identifier는 어디에서 사용되는가? : 공용 엔티티나 공용 DTD를 사용하는 경우에 PI가 사용됨
         10진수의 경우 코드 값이 n일 때<!ENTITY name "&#n;">
         16진수의 경우 코드 값이 n일 때<!ENTITY name "&@xn;">
         엘리먼트를 사용할 때 FIXED로 타입이 지정된 경우에 선언된 디폴트 값과 다른 값을 어트리 뷰트의 값으로 사용할수 없을을 의미함
         id 어트리뷰트의 타입은 ID이고 이 어트리뷰트는 반드시 사용해 주어야 하는 것으로 선언되었다. 그리고 reply_required 라는 어트리뷰트는 이 어트리뷰트의 값으로는 "yes"와"no"만 사용될수 있으며 만약 어트리뷰트가 명시되지 않았을 경우에는 디퐅르 값으로 "yes"를 사용한다.
         이경우에는 desc라는 어트르뷰트를 사용하지 않아도 되고,만약 사용하는 경우에 이 어트리뷰트의 값에는 White space 처리를 하지 않겠다는 예이다.
          *별표(*) : 요소가 없을 수 있다. 만일 있는 경우는 임의의 수만큼 반복될 수 있다(즉, 요소는 0번이상 반복해서 나타난다).
          *물음표(?) : 요소가 없을 수 있다. 만일 있는 경우는 요소가 단 하나만 있어야 한다(즉, 요소는 없거나 하나만 있어야 한다.).
  • ZeroPage_200_OK . . . . 13 matches
          * 위에 링크한 저의 Workspace Project의 index.html 파일에 메뉴 샘플을 구현해두었습니다. 상단의 Preview로 확인하면서 적절히 참조해서 만들면 도움이 될겁니다.
          * form 관련으로 사용자 입력을 받을 수 있었던 부분 실습을 주로 배웠습니다. 근데 궁금한게 도중에 html5 얘기를 하시면서 <a href=""><button>abc</button></a> html5에서는 이렇게 사용할 수 있는데 이런게 자바스크립트를 쓸 수 없는 경우에 된다고 하셨는데 그럼 원래 버튼의 onclick같은 on~는 자바스크립트인건가요? - [서영주]
          * https는 정말 어려운 주제 같네요. 일단 이해 되고 나면 쉬운데 뭔가 이것 저것 얽혀있는 느낌이네요. 따지고 보면 레이어 하나 추가되었을 뿐인데 난이도는 급 상승. 세션이나 쿠키같은경우에는 나오게 된 배경을 알게되어서 확실하게 이해하고 가는 느낌이네요. - [안혁준]
          * 서버에서 데이터를 가져와서 보여줘야 하는 경우에 싱글스레드를 사용하기 때문에 생기는 문제점에 대해서 배우고 이를 처리하기 위한 방법을 배웠습니다. 처음에는 iframe을 이용한 처리를 배웠는데 iframe 내부는 독립적인 페이지이기 때문에 바깥의 렌더링에 영향을 안주지만 페이지를 이동하는 소리가 나고, iframe이 서버측의 데이터를 읽어서 렌더링 해줄 때 서버측의 스크립트가 실행되는 문제점 등이 있음을 알았습니다. 이를 대체하기 위해 ajax를 사용하는데 ajax는 렌더링은 하지 않고 요청 스레드만 생성해서 처리를 하는 방식인데 xmlHttpRequest나 ActiveXObject같은 내장객체를 써서 요청 스레드를 생성한다는걸 배웠습니다. ajax라고 말은 많이 들었는데 구체적으로 어떤 함수나 어떤 객체를 쓰면 ajax인건가는 잘 몰랐었는데 일반적으로 비동기 처리를 하는거면 ajax라고 말할 수 있다고 하셨습니다. 그리고 중간에 body.innerHTML을 직접 수정하는 부분에서 문제가 생겼었는데 innerHTML을 손대면 DOM이 다시 만들어져서 핸들러가 전부 다 사라진다는 것도 기억을 해둬야겠습니다. - [서영주]
          * Element를 찾을 때 CSS 문법을 이용하여 작업을 할 수도 있고 jQuery의 메소드를 이용해서 작업을 할 수도 있는데, 복잡한 대상을 한 번만 찾아서 작업을 할 경우에는 CSS 문법을 이용하는 것이 좋고, 찾은 대상에서 여러 작업을 할 경우에는 jQuery 함수를 사용하거나 해당 Element를 변수에 저장해 두었다가 사용하는 것이 성능 면에서 좋다.
          * 웹 초기에 css설명했을 때 css셀렉터 문법도 설명을 해주셨었는데 많이 까먹어서 헷갈렸었습니다. -_- 역시 한 두 번 본걸로는 금방 잊어버리기 쉬운 것 같습니다. jQuery함수의 대부분은 호출 후 jQuery객체를 리턴하기 때문에 함수의 체이닝이 가능하다는 얘기를 하셨었는데 구글의 guava도 그렇고 요즘은 이런 형태의 구현이 많은건지 궁금합니다. 그리고 결과 값을 받아서 계속해서 다른 작업을 하는 경우가 아니라면 체이닝이나 그냥 한 번에 계산하는 방식이나 별 차이가 없는건가요? - [서영주]
          * setter, getter - 같은 함수가 set용 인자가 들어있을 경우에는 setter로, 그렇지 않을 경우에는 getter로 실행된다.
          * 이벤트 메소드 - 이벤트 메소드에 함수를 인자로 주지 않고 실행시키면 이벤트를 발생시키는 것이고, 함수 인자를 주고 실행시키면 이벤트 핸들러에 해당 함수를 등록한다. (ex. $(".add_card").click() / $(".add_card").click(function() { ... }))
          * live() - 처음에 ready() 때에 이벤트 핸들러를 걸어주는 식으로 코드를 짰을 경우 중간에 생성한 객체에는 이벤트 핸들러가 걸려있지 않다. 하지만 ready()에서 live() 메소드를 사용해서 이벤트 핸들러를 걸 경우 매 이벤트가 발생한 때마다 이벤트 핸들러가 걸려야 할 객체를 찾아서 없으면 이벤트 핸들러를 알아서 걸어준다. 하지만 처음에 핸들러를 걸어주는 것과 비교해서 비용이 다소 비싸다.
  • 시간관리인생관리/요약 . . . . 13 matches
          * 첫 번째 부분에서 작성한 점검표를 다시 한번 보라. 프로젝트를 완수하기 위해 목록에 추가할 또 다른 행동이 있는지 확인하라.
          * <!> '''연습 : 당신의 잘못된 업무 습관을 확인하라.'''
          * 일정한 시간이 끝나면 그동안 적었던 것을 잠시 평가한다. 행동이 필요한 것이 무엇인지 확인한다.
          ==== 약속 시간에 늦지 않으려면 '다른 모든 것을 중단하는' 결정의 순간을 확인하라 ====
          * 출발하기전 확인할 과정을 만들어 놓아라 예를 들어
         서류가방/영사기/화면/케이블 을 확인한다.
         책/파일/문구류/서류들 을 확인해서 정리한다.
          <!> 연습 '''당신이 언제 충동에 따라 행동하는지 확인하기'''
          * 우리는 충동에 의해서 행동하는 정도를 확인하려고 한다. '''규정하기(Labelling)''' 연습을 해보자.
          * 두번째 단계 - 가장 저항을 느끼는 항목에 확인 표시를 하라. 절반의 항목에 기록하라.
         (이메일을 확인하려는 본능적인 반응을 자제하면서)"나는 건강을 개선시키기 위해 어떤 행동을 할 것인지 결정하고 있다."
          ==== 당신이 충동적인 행동에 특히 조심해야 하는 당신 자신의 '위험 시간' 과 '위험 장소'를 확인하라. ====
          || '''저항을 안내자로 사용하면''' || '''그렇지 않은 경우에는''' ||
  • FreechalAlbumSpider . . . . 12 matches
         프리첼이 유료화되면서 주위 사람들이 게시판들을 프리첼로부터 이전을 하기 시작하였다. 주위 아는 교회선배들의 경우는 그중 숭실대에서 게임방을 운영하시는 분이 있어서 교회사람들 전용 서버를 하나 마련하고 게임방에서 굴리기로 한다. 프리첼 게시판 변환기의 경우 이미 범용적인 제로보드나 이지보드에서 제공을 하지만, 앨범이나 화일 백업은 지원하지 않는다. 그리고, 게시판 백업을 할때엔 프리첼 관리자가 기존 게시판들의 접근 권한정도를 조절해줘야 한다. 로그인처리가 안되어있기 때문인데, 제로보드 게시판 변환기를 보니 쿠키 관련 처리가 없었다.
         처음 무엇을 해야 할지 고민을 해야 하는데, 일단은 '이미지를 가져오는게 가능한가?' 를 먼저 하게 되었다. 프리첼의 경우 이미지를 얻어오는 방법이 getImage.asp 화일을 통해서만 가능하다. 일반 JPG 링크가 아니기 때문에, getImage.asp 로 넘겨주는 인자들을 알아내야 한다.
         ["1002"] 는 webdebug 와 Proxomitron 두개를 이용하는데, 둘 다 일종의 프록시 서버처럼 이용하여 HTTP 로 송수신 되는 GET/POST, HTTP Header 데이터들의 로그를 확인할 수 있다. 둘을 이용, 프로토콜 분석을 하였다.
         주로 제로보드 데이터로 변환하기 위한 데이터베이스 저장 부분인데, 첫번째 이유로는 제로보드 DB 의 스키마를 제대로 파악하지 못한것이 문제였다. 이 문제는 프리첼->제로보드 컨버터 PHP 소스를 보고 이를 Python 으로 포팅하였다. 이전에 PHP 프로그래밍을 많이 했기 때문에 익숙했고, 어차피 같은 어족군(?)의 언어이므로 별다른 어려움이 없었다. 하지만, 테스트 경우를 명확하게 하지 않았기 때문에, 작동이 제대로 되지 않는지에 대해서는 게시판 변환뒤 매번 웹에서 나온 결과를 확인해야 했다.
          원리는 보통의 이런류의 프로그램 (HTTP 로 문서 가져오고 스트링 파싱하여 데이터로 가공하고 DB에 저장) 이 비슷합니다. 단, 앨범게시판의 경우 로그인이 필요한데, 이 경우 쿠키 처리를 위한 header setting을 해줘야겠죠. Perl 같은 경우 LWP, Python 의 경우 ClientCookie, Java 의 경우 HttpUnit(원래의 용도는 다르지만, 이런 프로그램을 위한 간이 브라우저 라이브러리로 쓸 수 있습니다.) 등의 라이브러리를 쓸 수 있습니다. 그리고, 이미지의 경우는 해당 URL을 보고 다시 HTTP Connection 을 열어서 얻어와서 binary로 저장해야 한다는 것이 유의사항이 되겠습니다. (HTML만 얻어오면 img tag 의 링크들만 있겠죠.) 그리고 header setting 에서 약간 미묘(?)한 부분이 있던것 같던데, 저는 걍 webdebug 로 캡쳐한거 그대로 보낸지라..; 이 부분은 CVS의 코드 참조하세요. --[1002]
  • Gof/Singleton . . . . 12 matches
         몇몇 클래스들에 대해서 오직 하나의 인스턴스 만을 가지는 것은 중요한 일이다. 예를 들면, 어떤 시스템에선 수많은 프린터들이 있더라도 거기에는 단 하나의 프린터 스플러만이 있어야 한다. OS에서 돌아가는 화일시스템이나 윈도우 매니저의 경우도 오직 하나여야 한다 (동시에 2-3개의 윈도우매니저가 돌진 않는다.) 디지털 필터의 경우에도 A/D converter는 단 하나를 가진다.
         어떻게 우리는 클래스로 하여금 단 하나의 인스턴스만을 가지도록 보장해줄 수 있을까? 그리고 그러한 인스턴스를 쉽게 접근하게 할 수 있을 것인가? global 변수로 둘 경우 어디서든지 접근가능하겠지만, global 변수는 단일 인스턴스만을 가지도록 할 수 없다.
         SingletonPattern은 다음과 같은 경우에 사용한다.
          * 단일 인스턴스가 서브클래싱에 의해 확장가능해야 할 경우. 그러면 클라이언트는 그들의 코드 수정없이 확장된 인스턴스를 사용할 수 있어야 한다.
          3. 명령어와 표현을 확장시킬 수 있다. Singleton class는 subclass될 수 있고, 이 확장된 클래스의 인스턴스를 가지고 어플리케이션을 설정하는 것은 쉽다. run-time중에 필요한 경우에도 가능하다.
         1. unique instance임을 보증하는 것. SingletonPattern의 경우도 일반 클래스와 마찬가지로 인스턴스를 생성하는 방법은 같다. 하지만 클래스는 늘 단일 인스턴스가 유지되도록 프로그래밍된다. 이를 구현하는 일반적인 방법은 인스턴스를 만드는 operation을 class operations으로 두는 것이다. (static member function이거나 class method) 이 operation은 unique instance를 가지고 있는 변수에 접근하며 이때 이 변수의 값 (인스턴스)를 리턴하기 전에 이 변수가 unique instance로 초기화 되어지는 것을 보장한다. 이러한 접근은 singleton이 처음 사용되어지 전에 만들어지고 초기화됨으로서 보장된다.
         클래스를 사용하는 Client는 singleton을 Instance operation을 통해 접근한다. _instance 는 0로 초기화되고, static member function 인 Instance는 단일 인스턴스 _Instance를 리턴한다. 만일 _instance가 0인 경우 unique instance로 초기화시키면서 리턴한다. Instance는 lazy-initalization을 이용한다. (Instance operation이 최초로 호출되어전까지는 리턴할 unique instance는 생성되지 않는다.)
          * (b) 모든 singleton들이 static initialization time 대 인스턴스되기 위한 충분한 정보를 가지고 있지 않을수도 있다. singleton은 프로그램이 실행될 때 그러한 정보를 얻을 수 있다.
          self error: 'cannot create new object'
         registry 는 string name 과 singletons 을 mapping 한다. singleton의 instance가 필요한 경우, registry에 string name으로 해당 singleton 을 요청한다. registry는 대응하는 singleton을 찾아서 (만일 존재한다면) 리턴한다. 이러한 접근방법은 모든 가능한 Singleton class들이나 instance들을 Instance operation이 알 필요가 없도록 한다. 필요한 것은 registry에 등록될 모든 Singleton class들을 위한 일반적인 interface이다.
         물론, 코드 어디에선가 클래스를 인스턴스화하지 않으면 생성자는 호출되지 않을 것이다. C++에서는 MySingleton의 static instance를 정의함으로서 이 문제를 잘 해결할 수 있다. 예를 들어, MySingleton 클래스의 구현부를 포함하는 화일에 다음과 같이 정의하면 된다.
         자, 이제 MazeFactory의 subclassing에 대해 생각해보자. MazeFactory의 subclass가 존재할 경우, application은 반드시 사용할 singleton을 결정해야 한다. 여기서는 환경변수를 통해 maze의 종류를 선택하고, 환경변수값에 기반하여 적합한 MazeFactory subclass를 인스턴스화하는 코드를 덧붙일 것이다. Instance operation은 이러한 코드를 구현할 좋은 장소이다. 왜냐하면 Instance operation은 MazeFactory를 인스턴스하는 operation이기 때문이다.
         error C2248: 'CNSingleton::CNSingleton' : cannot access private member declared in class 'CNSingleton' 라고 에러가 발생합니다.
  • HelpOnInstallation . . . . 12 matches
         `rcs`가 설치되었는지 확인한다. {{{/usr/bin/rlog /usr/bin/ci /usr/bin/co}}}등등의 실행파일이 있어야 한다. {{{/usr/bin/merge}}}도 필요하다. PHP gettext 모듈이 필요하다. See also MoniWikiRcs
          * 윈도우즈 사용자의 경우는 아파치 웹서버를 제외한 PHP + rcs + 기타 몇몇 프로그램이 함께 패키징 된 apmoni-setup-1.1.x.exe를 제공합니다.
          * 윈도우즈 사용자의 경우 micro apache 웹서버가 포함된, mapmoni-setup-1.1.x.exe 를 받으실 수도 있습니다. (단, 여기서 .x. 는 3 이상)
         처음 설치할 경우 MoniSetup을 이용해서 config.php를 만들게 된다.
          1. MoniWiki를 처음 설치할 경우는 WikiSeed를 심을것인지를 선택한다.
          씨앗을 심는 경우는 불필요한 페이지가 들어갈 수 있는데, 어느정도 익숙해졌다고 생각되면 지워도 되며, 아예 처음부터 설치하지 않아도 된다.[[BR]]
          2. {{{$rcs_user}}}의 기본 값은 "root"이나, 위키를 처음 설치할 경우는 이 값을 조절할 수 있다. 한번 결정한 후에는 이 값을 계속해서 써야한다.
          * 윈도우즈에서 설치할 때에 이 값이 바뀔 수 있다. 업그레이드를 하여 데이타를 옮겼을 경우에 이 값을 계속 유지하도록 해주어야 한다.
         업그레이드를 편리하게 하려면, 플러그인을 새로 추가할 경우는 원 파일을 고치는 것보다는 새롭게 플러그인을 만들어 준다. 이렇게 하면 tar파일을 덮어쓰는 것만으로 간단히 업그레이드 할 수 있다.
         특별한 경우가 아니라면, 덮어쓰는 것만으로 업그레이드 할 수 있다. 원 파일을 수정하였을 경우라면 덮어쓰는 것을 선택적으로 해주어야 할 것이다.
         root사용자라면 tar를 이용해서 간단히 백업할 수 있겠고, 호스팅을 하는 일반 사용자의 경우라면 backup restore를 액션을 이용할 수 있다.
  • HelpOnUserPreferences . . . . 12 matches
          * OpenID를 지원하는 경우는 OpenID를 쓰실 수 있습니다.
          * 웹상의 비번은 쉽게 노출될 가능성이 많으므로 가능한 노출되어도 큰 문제가 되지 않을 비밀번호를 사용하시기 바랍니다.
          * '''[[GetText(Password repeat)]]''': 초기 사용자 등록시에 나타납니다. 바로 위에서 입력했던 비밀번호를 확인하는 단계로, 조금 전에 넣어주었던 비밀번호를 그대로 집어넣어 주시면 됩니다.
          * '''[[GetText(Email)]]''': 자주 쓸 이메일 주소. 이메일 주소를 넣어주면 원하는 위키페이지에 대하여 그 변경점을 구독신청하거나 취소하실 수 있습니다. 비밀번호를 잊으셨을 경우에도 이 이메일 주소를 사용해 새로운 비밀번호를 등록하실 수 있습니다.
          * 이메일 주소는 반드시 고유해야 하며, ACL 설정에 따라서는 이메일 주소를 반드시 필요로 하는 경우도 있습니다.
          * 시스템의 기본 설정에 따라서는 테마 변경을 지원하지 않을 수도 있습니다.
          * '''[[GetText(User CSS URL)]]''': 자신이 원하는 CSS로 변경하고 싶을 경우에 사용합니다.
          * 시스템의 기본 설정에 따라서는 CSS변경을 지원하지 않을 수도 있습니다.
          * '''[[GetText(Subscribed wiki pages (one regex per line))]]''': 모든 페이지의 변경알림을 받아보고 싶은 경우에 '''`.*`''' 를 집어넣으시면 됩니다. (위키위키가 많은 변경이 있는 경우 권장하지 않습니다.) 각 페이지를 보고싶은 경우에는 각각의 페이지 이름을 줄 단위로 넣으시면 됩니다. 정규식에 익숙하신 사용자의 경우에 정규식을 사용하실 수도 있습니다. 설정에 따라서 상단의 아이콘 툴바에 [[Icon(email)]]이 나타날 수 있으며, 이메일 아이콘을 누르면 해당 페이지를 구독하는 폼이 뜨게 됩니다.
  • MindMapConceptMap . . . . 12 matches
         MindMap 의 경우, 일반적인 책들과 같이 그 체계가 잘 잡혀 있는 지식에 대해 정리하기 편리하다. (SWEBOK 과 같이 아에 해당 지식에 대한 뼈대를 근거로 지식을 분류해놓은 책같은 경우에는 더더욱) 일반적으로 한 챕터에 대해서 5-10분정도면 한번 정리를 다 할 수 있을 정도로 필기할때 속도가 빠르다. 그러면서 해당 중심 주제에 대해서 일관적으로 이어나갈 수 있도록 도와준다. (이는 주로 대부분의 책들이 구조적으로 서술되어있어서이기도 할 것이다.)
         MindMap 의 문제점은 중간에 새어나가는 지식들이 있다. 기본적으로 그 구조가 상하관계 Tree 구조이기 때문이다. 그래서 보통 MindMap 을 어느정도 그려본 사람들의 경우 MindMap을 확장시켜나간다. 즉, 중심 개념을 여러개 두거나 상하관계구조를 약간 무시해나가면서. 하지만 여전히 책을 읽으면서 잡아나간 구조 그 자체를 허물지는 않는다.
         ConceptMap 은 'Concept' 과 'Concept' 간의 관계를 표현하는 다이어그램으로, 트리구조가 아닌 wiki:NoSmok:리좀 구조이다. 비록 도표를 읽는 방법은 'TopDown' 식으로 읽어가지만, 각 'Concept' 간 상하관계를 강요하진 않는다. ConceptMap 으로 책을 읽은 뒤 정리하는 방법은 MindMap 과 다르다. MindMap 이 주로 각 개념들에 대한 연상에 주목을 한다면 ConceptMap 의 경우는 각 개념들에 대한 관계들에 주목한다.
         개인적으로 처음에 MindMap 보다는 그리는데 시간이 많이 걸렸다. 하지만, MindMap 에 비해 각 개념들을 중복적으로 쓰는 경우가 적었다. (물론 MindMap 의 경우도 중복되는 개념에 대해서는 Tree 를 깨고 직접 링크를 걸지만) MindMap 의 Refactoring 된 결과라고 보면 좀 우스우려나; 주로 책을 정리를 할때 MindMap 을 하고 때때로 MindMap 에서의 중복되는 개념들을 토대로 하나의 개념으로 묶어서 ConceptMap 을 그리기도 한다.
          * MindMap 과 ConceptMap 을 보면서 알고리즘 시간의 알고리즘 접근법에 대해서 생각이 났다. DivideAndConquer : DynamicProgramming. 전자의 경우를 MindMap 으로, 후자의 경우를 ConceptMap 이라고 생각해본다면 어떨까.
          ''MindMap 에 경우 중요시 하는 것 중 하나가 연상을 더욱 더 용이하게 하는 이미지이기도 하죠. --석천''
         MindMap 의 표현법을 다른 방면에도 이용할 수 있다. 결국은 트리 뷰(방사형 트리뷰) 이기 때문이다. [1002]의 경우 ToDo 를 적을때 (보통 시간관리책에서 ToDo의 경우 outline 방식으로 표현하는 경우가 많다.) 자주 쓴다. 또는 ProblemRestatement 의 방법을 연습할때 사용한다. --[1002]
  • SmallTalk/강좌FromHitel/강의2 . . . . 12 matches
          령입니다. 필자의 경우는 약 1024㎲의 시간이 걸렸습니다. 물론 여기서 여러
          결과가 남습니다. 그 중에는 "3 + 4."의 경우와 같이 간단한 결과를 남기는
          경우도 있지만 지금의 경우처럼 복잡한 결과를 남기는 경우도 많습니다.
          막 항목은 은 몇 번입니까? 필자의 경우는 567입니다. 결국 이 말은,
          필자의 경우에는 44121개의 객체가 있다고 보고되었습니다. 여러분의 경우
          일터 화면에 표시하고싶지 않을 때 사용합니다.
          Dolphin Smalltalk가 아닌 다른 Smalltalk 환경의 경우 명령 실행 방법이 다
          위의 명령을 실행하면 "발자취 창"이 열립니다. 보통의 경우 그냥
          이제 Smalltalk에서 명령을 내리는 것이 별로 어렵지 않을 거라고 생각합니
  • ZPBoard/AuthenticationBySession . . . . 12 matches
         회원 인증이란 회원에게 부여된 고유의 아이디와 패스워드를 통해 회원임을 확인하고, 확인된 회원에 한에서 웹 사이트의 회원 전용 기능을 사용할 수 있도록 하는 것.
         이 예는 세션이 사용되는 기능에 초점을 맞춰 가장 단순한 경우를 이야기 한 것입니다. 실제로는 고려해야 할 부분이 더 있겠죠?
         A. maybe or maybe not. 일반적인 경우, 세션에서 사용되는 쿠키는 브라우져를 닫으면서 보통 삭제되게 되어있으므로 그렇다고 볼 수도 있지만, 엄밀히 이야기해서, 로그아웃처리가 되는것은 아닙니다. 해당 세션키를 통해 다시 요청한다면, 서비스를 받을 수 있습니다. 이 모든 일은 HTTP 프로토콜 특성상 브라우져를 닫는 등의 행위가 오프라인에서 이루어지는것이기 때문입니다. (배틀넷을 하다가 랜선을 뽑으면 디스커넥이 되지만, 웹서핑도중 랜선을 뽑는건 어떠한 영양도 미치지 않는것과 같습니다.)
         // Auth 라는 Session 변수가 없다면 인증이 안된 경우 이므로...
         이곳에 회원 인증이 되지 않은 경우에 보여줘야 할 것을 넣는다. (회원 인증 폼 등...)
         // Auth 라는 Session 변수가 있다면 인증이 된 경우 이므로...
         이곳에 회원 인증이 된 경우에 보여줘야 할 것을 넣는다. (로그 아웃 폼, 회원 전용 기능 등...)
         이곳에서 회원 DB 를 검색하여 회원 인증 폼으로부터 받은 아이디와 패스워드를 확인한다.
         if(회원이 맞는 경우)
          * 질문들이 조금 이해가 안돼서요... 그럼 세션과 쿠키를 같이 사용하면 생각하시는 문제가 해결이 될까요? 쿠키의 만료 기간을 주지 않으면 브라우져를 닫으면 없어지는걸로 알고 있는데요 처음에 쿠키를 확인해 없다면 세션이 남아있더라도 지워버리는 방법을 사용하면 문제가 해결 될까요? --["상규"]
          * '''처음에 쿠키를 확인해 없다면 세션이 남아있더라도 지워버리는 방법을 사용하면 문제가 해결 될까요?'''
  • 새싹교실/2012/세싹 . . . . 12 matches
          - physical : 비트들을 물리적으로 이동시키는 역할을 합니다. 유선의 경우 다양한 케이블, 무선일 경우 공기가 매체가 되겠네요.
          - 서버소켓의 경우 창구의 역할을 하기때문에 클라이언트에서 서버로 요청이 올 경우 별도의
          2) 하나의 클라이언트가 다수의 서버에 연결을 요청하는 경우에는 어떻게 될까요?
          - 양방향 통신중 한쪽이 off-line상태인 경우에도 메시지의 전송과 수령이 가능하도록
          * 하나의 클라이언트가 다수의 서버에 연결 요청하는 경우도 해봅시다.
          * 컴파일이 안되서 인터넷으로 확인해보니 다중 스레드를 쓰려면 gcc에 옵션 -lpthread를 주어야하는군요. - [김희성]
          2) 하나의 클라이언트가 다수의 서버에 연결을 요청하는 경우
          * fopen의 경우 Standard함수인데 같은 input일 때, 리눅스에서 다르게 작동할지 궁금합니다. - [김희성]
          * 값을 확인하는데 이상한 값이 나와 검색해보니 MFT에서도 Little Endian형식을 쓰는 군요. - [김희성]
          * CreateFile함수 사용시 문자열이 LPCWSTR로 변환되지 않는 문제가 생기는 경우에는 CreateFileA를 사용해보세요.
  • 윤종하/지뢰찾기 . . . . 12 matches
          if(argc==4){//argument로의 맵사이즈 입력이 있을 경우
          else{//argument로의 입력이 없을 경우
          if(argc==4) iNumOfMine=atoi(argv[3]);////argument로의 지뢰 개수 입력이 있을 경우
          else printf("Unproteted error is occured!\a");
          if(map[input.Y][input.X].iIsRevealed==TRUE) return TRUE;//이미 깐 것을 눌렀을 경우
          else if(map[input.Y][input.X].iIsMine==TRUE) return FALSE;//지뢰를 눌렀을 경우
          if(map[input.Y][input.X].iIsRevealed==TRUE) return;//이미 깐 것을 눌렀을 경우
          if(map[input.Y][input.X].iIsRevealed==TRUE) return;//이미 깐 것을 눌렀을 경우
          if((temp_pos.X>size.X-1 || temp_pos.X<0) || (temp_pos.Y>size.Y-1 || temp_pos.Y<0)) continue;//범위를 초과했을 경우
          else if(map[temp_pos.Y][temp_pos.X].iIsRevealed==TRUE) continue;//이미 깐 것일 경우
          if((temp_pos.X>size.X-1 || temp_pos.X<0) || (temp_pos.Y>size.Y-1 || temp_pos.Y<0)) continue;//범위를 초과했을 경우
          if(coordX==0 && coordY==0) continue;//기존 위치를 참조했을 경우. 지우면 stack overflow의 향연
          if(map[temp_pos.Y][temp_pos.X].iIsRevealed==TRUE) continue;//열려있을 경우는 검사할 필요가 없잖아
  • 지금그때/OpeningQuestion . . . . 12 matches
         다 좋습니다. 하지만, 시간 때우기나 "남들이 뭐하니까 나도..."는 하지 않는 게 좋겠죠. 제가 공강시간에 시간 때우기 했을 시간에 "뭔가"를 했더라면 학창시절이 더 즐거웠을 거고, 저는 훨씬 더 알찬 사람이 돼있지않을까 하는 생각을 합니다.
         누구나 생각해 보면 쉽게 답할 수 있는 질문일 것 같습니다. 제 경우와 주변을 살펴보면, 1학년 때 수업만 따라가면 큰 차이가 없는 것 같습니다. 그러나 1학년 때 자신이 알아서 소위 "탐구 학습"을 하면 나중에 남들이 따라오기 힘들 정도로 큰 격차가 생깁니다. 물론 1학년 때 공부 거의 안하고 나중에 따라 잡고 발전하는 경우도 있습니다만 그렇게 쉬운 일은 아닙니다.
         만약 관심이 가는 대상이 있다면 가급적 교양보다 (다른과) 전공수업을 들을 것을 권합니다. 학생들의 분위기, 교수의 태도, 수업의 진지함 등 모두가 차이가 큽니다. 의외로 따라가기가 그렇게 어렵지 않은 경우가 많습니다(오히려 클래스 탑을 하는 경우도 많습니다). 스스로 따라갈 수 있을지 의문이 들면, 해당 수업의 지난 학기 교과서를 구해서 읽어보세요. 감이 올겁니다.
         어설픈 교양수업보다 진지한 전공수업이 훨씬 나은 경우가 많습니다.
         제 경우, 학과 전공 수업은 크게 유용하지 않았습니다. 만약 지금 다시 되돌아간다면 훨씬 유용하게 수업을 "이용"했을 거라고 생각합니다. 반면 타전공 수업은 대부분 만족스러웠습니다. --JuNe
          1. 그리고는 위에서부터 차례대로 실행(?)한다. 예를 들면 설거지부터 시작한다. 설거지를 하다가 5분이 되었을 경우 그만두고 다음 일을 한다. 그리고 설거지 옆에 5를 지운다.
         우리는 지식 기술자가 될 사람들이며, 지식인 기술자의 기반은 책입니다. 그리고 책을 소비하는 전체의 20%에 우리가 속해 있을 것입니다. (80/20법칙 참고) 그렇다면 적어도 전체 평균 독서량의 3배는 봐야 하지 않을까? 생각을 합니다. 2000년 기준 통계로 한국인은 일년에 총 독서량 13.5 권을 읽습니다. (Seminar:독서량 ) 그러므로 대략 1년에 30권 정도에서 타협할수 있을것 같습니다. 이는 전공책을 합친 수치입니다.
         앞서 답한 NeoCoin군의 경우 제 주변에서도 소문날 정도로 다독을 하는 친구입니다.
         같은 주제 읽기(see HowToReadIt)를 하기에 도서관만한 곳이 없습니다. 그 경이적인 체험을 꼭 해보길 바랍니다. 그리고 도서신청제도를 적극적으로 활용하세요. 학생 때는 돈이 부족해서 책을 보지 못하는 경우도 있는데, 그럴 때에 사용하라고 도서신청제도가 있는 것입니다. --JuNe
         잡지 경우, ItMagazine에 소개된 잡지들 중 특히 CommunicationsOfAcm, SoftwareDevelopmentMagazine, IeeeSoftware. 국내 잡지는 그다지 추천하지 않음. 대신 어떤 기사들이 실리는지는 항상 눈여겨 볼 것. --JuNe
  • 회원정리 . . . . 12 matches
         어떤 기준에 의해서 정리가 되는 건가요? 그것이 회칙에 규정되어 있나요? 아니면 임의적으로 행해질 수 있나요? ["회원정리"]가 꼭 필요할까요? 회원정리를 당한 사람은 회원정리를 한 사람(혹은 남은 사람들)과의 실 관계에 서먹해지진 않을까요? 위키의 홈페이지를 꼭 삭제해야 할까요?
         모임에 참가를 잘 못하고, 프로젝트 활동이 미진한 사람에게 처벌이 필요하나요? 모임에 참가를 안하고 프로젝트 활동이 부진한 것 자체가 일종의 처벌이 되는 경우는 없을까요? 처벌이 아니고 보상으로써 적극성을 이끌어 낼 수는 없을까요?
          저도 상당부분 동의합니다. 그런데 제가 아직 변화에 따르지 못하는 것인지.. 아니면 아직도 대학사회가 변하지 않는 것인지는 모르겠지만 비교적 저학년에 속해있고 스스로에 익숙치 않은 1,2학년들에게는 위와같은 모습을 기대하기가 생각만큼 쉽지는 않을것 같습니다. 물론 이미 대학을 거쳐(점차 대졸출신이 많아지므로 이렇게 말하겠습니다.) '비교적 스스로에 익숙한' 사람들이 있는 사회에선 위와같은 모습을 기대할 수 있을 것이라는 것에는 공감을 하고 동의합니다. 만약 제가 시대의 흐름에 뒤따라가지 못하고 있다면 고쳐보고 싶습니다. (물론 학회차원에서가 아니라 개인적 차원에서입니다.. :) )
          회원정리의 기준은 회칙에서 정해진 대로 '사전 연락없이 정모 연속 2회이상 불참' 에 근거하였습니다. 미처 게시판,위키에 연락하지 못하고 회장에게 연락한 경우도 감안을 하였습니다. 또한 프로젝트, 스터디 등을 하면서 ZeroWiki 상에서의 활동여부도 참작을 하였습니다. 활동사항이 전혀 없으면서 정모에 연속 2회이상 불참이 경우가 회원정리의 대상이었습니다.(공교롭게도 이렇게하여 나온 명단의 사람들은 정모에 2,3달 이상 불참하였습니다. 자진 탈퇴라고 보아도 될 정도로 말이죠. 아무런 연락도 없이 불참하였으니까요.) 분명히 정모를 하기 전에 '회원정리를 합니다' 라고 명시를 했었고 그에 대하여 아무런 의견도 없었습니다. 회칙을 정모에서 정했던 만큼 동의하는 것으로 간주하여 회원정리 당일 정모에 참여했던 회원들끼리 회칙 기준에 맞추어 회원정리를 단행하였습니다.
          그리고 회원정리의 근거가 된 정모의 참여여부를 말씀드리자면 정모에 규칙적으로 나옴으로써 친목을 다져 스터디, 프로젝트 등의 활동에 활기를 불어넣고자 함이었습니다. 처리할 안건이 있으면 이날 모인 김에 처리할 목적도 있었구요. 그리고 정모를 '무한 자유'로 할경우 참여가 저조하다는 지적이 있어 강제성을 부여하고자 '회원자격상실'이라는 처벌을 두게 된 것입니다. 2002.1에 제로페이지와 데블스의 통합할때 '학회활동의 저조함의 원인' 의 하나로써(전부가 아니라 일부라는 점을 다시 말씀드립니다.) 정모의 불참으로 인한 회원들간의 결속력 상실을 꼽았던 걸로 기억합니다. Z&D 로 페이지 검색하면 나오는 페이지들이 당시 통합과정에서 남은 문서들입니다. 아무튼 그리하여 정모에 강제성을 두고자 회원자격박탈이라는 벌칙이 만들어졌고 일년이 지난 지금 시행하게 되었습니다.
          유령회원들은 ZeroPagers 라는 이름으로 등록되어있지만 실제로 활동은 0에 가깝습니다. 아니 0 인 경우가 더 많겠지요. 이러한 회원들을 굳이 ZeroPagers 에 포함시킬 이유는 없다고 봅니다. 학회는 살아있어야 한다는 것이 제 입장입니다. 활동이 0에 가까운 사람들은 학회가 살아있도록 한다기보단 학회의 인적규모만 표면적으로 늘릴 뿐 실질적 활동사항은 0에 가까워지게 한다고 봅니다. '겉으로는 인원이 많은 거대규모의 학회, 하지만 안으로는 활동사항이 미진한 학회.' 제가 보는 '망해가는 학회'의 모습입니다. 표현이 극단적일지는 모르겠으나 이렇게 되는 것은 하루아침에 되는 것이 아니라 서서히 참여도가 줄어들면서 만들어 질수 있는 모습이라고 생각됩니다. 이런 모습을 막기 위해서라도 회원정리라는 방법이 필요하다고 생각합니다.
         회원 정리는 잘 모르겠으나 경고의 경우에는 그사람들에게 이메일같은걸로 알려주어야 할거 같네여. 그래야 경고의 의미가 살거 같구여. 회원 정리는 알려야 하나 말아야 하나.. -_-;; --["상협"]
          경고는 회칙에 있지 않은 조치였습니다. 경고라기 보다는 앞으로 열심히 해달라는 식의 공지였습니다만 그럴만한 정당성도 없거니와 할 이유가 없어 삭제하였습니다. 회원정리의 경우 회칙에 명시된대로 개인 연락을 하기로 하였습니다. --["창섭"]
         회칙에 적혀 있는 내용에 의하면 '본인 의사로 회원 자격을 상실한다'인것으로 알고 있습니다만. '정리대상'에 오른 회원들의 의사를 확인하였나요? (글을 보면, 회원정리가 먼저고 공지가 뒤에 이루어지는 것 같은데.. 이건 순서가 안맞는것 아닌가요?)
         그리고, 위의 글에서도 언급되었듯이, 특히 사람과 관계된 문제에 대해서는 좀 더 근본적인 부분에 대해 생각해보아야 하지 않을까 합니다. (수업때건 언제건 매일같이 얼굴 볼 사람들입니다.) 약간 더 극단적이라면, 현재의 'ZeroPage' 라는 그룹이 다른 대다수의 회원들(정리 & 경고 대상의 회원들이 현재의 소위 '활동회원' 수 보다 더 많은 것 같은데)에게 아무런 장점이나 이익을 제공해주지 못하고 있진 않은가에 대해서도 생각해보아야 하지 않을까요.
  • Java Study2003/첫번째과제/장창재 . . . . 11 matches
         자바는 컴파일 시에 에러 검사를 철저하게 하고, 실행 시에 발생할 수 있는 에러에 대해서도 실행 시에 철저하게 검사를 수행함으로써 신뢰도가 높은 프로그램을 작성할 수 있도록 해 줍니다. 또한, C/C++ 프로그램 개발자들을 가장 혼란스럽게 하고, 프로그램의 치명적인 오류를 발생시킬 수 있는 포인터 및 포인터 연산을 자바에서는 사용하지 않게 함으로써, 포인터를 사용함으로써 프로그래머가 범할 수 있는 오류를 없앴다는 것입니다.
         자바 애플릿을 실행시키기 위해 애플릿을 다운로드해야 하는데, 이 때 애플릿에서 사용하는 데이터들도 존재할 수 있습니다. 예를 들어, 애니메이션을 수행하는 애플릿이 있는 HTML 페이지에 접속하여 그 애플릿을 실행시켜야 할 경우, 해당 애플릿 파일과 애플릿에서 애니메이션을 위해 사용하는 각 프레임 이미지도 존재할 것입니다. 따라서, 애플릿 파일은 물론 애플릿에서 사용하는 이미지 파일도 다운로드해야 애플릿에서 제대로 애니메이션을 수행할 수 있겠지요. 이 때, 애플릿 실행과 관련된 모든 파일을 JAR 또는 ZIP 형태의 압축 파일로 묶어 전송하게 됩니다. 이렇게 함으로써, 느린 네트워크를 이용하여 애플릿과 관련된 파일들을 다운로드 하는데 드는 시간을 줄일 수 있습니다.
         다운로드 받은 애플릿과 애플릿 관련 파일들은 웹 클라이언트의 디스크에 캐싱합니다. 예를 들어, 웹 클라이언트가 애플릿이 포함된 페이지를 보다가 다른 페이지에 잠깐 들렀다가 애플릿이 포함된 페이지로 다시 돌아올 경우, 애플릿과 관련된 모든 파일들을 다시 다운로드하는 것이 아니고 웹 클라이언트의 디스크에 캐싱 되어 있는 애플릿 관련 파일들을 사용하게 됩니다. 이렇게 함으로써, 느린 네트워크를 이용하여 애플릿과 관련된 파일들을 다시 다운로드 하는데 걸리는 시간을 없앨 수 있습니다.
         하나의 HTML 페이지 내에 있는 애플릿은 하나의 클래스만을 사용할 경우도 있겠지만, 대부분의 경우 여러 개의 클래스를 필요에 따라 사용하게 됩니다. 여러 개의 클래스를 사용할 경우, 모든 클래스가 동시에 사용되지는 않겠지요. 또한 어떤 클래스는 정의는 되어있지만, 필요에 따라 전혀 사용되지 않을 수도 있겠지요. 따라서, 자바에서는 필요할 경우에만 클래스를 로딩하여 사용하게 됩니다. 이러한 기술을 느린(lazy) 클래스 로딩 이라 합니다.
         이러한 문제점은 느린(Lazy) 클래스 로딩에서 발생하거나 메모리 할당과 가비지 콜렉션이 비결정적이고 느린 최악의 경우(worst-case) 특성을 가지며 stop-start 방식으로 모든 스레드를 멈출 수 있다는 문제점이 있습니다. 이를 해결하기 위해 클래스를 미리 로딩(class preloading)한다거나 정적 초기화(static initializer)를 제거하여 패키지 라이브러리에 대해서는 가상머신 초기화를 사용하고 응용프로그램에서는 명시적인 초기화 를 사용하게 하는 등의 기법을 사용할 수 있습니다. 그리고, 메모리 할당과 쓰레기 수집(garbage collection)에 대해서는 정해진 시간 내에 입터럽트 가능한 쓰레기 수집을 하는 것입니다. 또는 표준화된 실시간 API를 제공함으로써 해결할 수 있습니다.
         이렇게 두 개 이상의 자바 프로그램 규약을 만족시키는 자바 프로그램은 여러 자바 프로그램에 속하게 됩니다. 예를 들어, 하나의 자바 프로그램을 작성했는데, 이 자바 프로그램은 자바 애플리케이션을 위한 규약을 만족시켜 주고 자바 애플릿을 위한 규약도 만족시켜 준다면, 이 자바 프로그램은 JDK와 함께 제공되는 자바 가상머신에 의해 실행되는 자바 애플리케이션으로서 독립적으로 실행될 수도 있고, 자바 호환 웹 브라우저에 내장된 자바 가상머신에 의해 자바 애플릿으로 실행될 수도 있다는 것입니다. 이렇게 자바 언어를 이용하여 여러 규약에 맞는 자바 프로그램을 작성할 수 있지만, 하나의 자바 프로그램이 굳이 두 개 이상의 규약을 모두 만족시켜주도록 자바 프로그램을 작성하는 경우는 자바 애플리케이션과 자바 애플릿의 경우를 제외하고는 거의 없습니다.
  • MineFinder . . . . 11 matches
          * 추후 프로그램이 커질 경우 '눈' 부분과 '지능' 부분을 따로 빼낼 수 있도록 궁리.
          * '눈' 해당 부분 - 지뢰찾기 프로그램으로부터 비트맵을 얻어 데이터로 변환하는 루틴 관련부. 현재 bitmap 1:1 matching 부분이 가장 부하가 많이 걸리는 부분으로 확인됨에 따라, 가장 개선해야 할 부분.
          * 컴퓨터가 실패했을 경우 자동으로 다시 시작하여, 사용자가 중지시키거나 지뢰를 다 찾을때까지 프로그램을 계속 진행시킨다.
          * 게임 시작 & 게임중인 상태 확인
          * 게임 실패인 상태 확인
          * 게임 클리어인 상태 확인
          * 빈칸, 깃발체크, 숫자들 등 Cell들에 대한 상태 확인
          * 컴퓨터가 실패했을 경우 자동으로 다시 시작하여, 사용자가 중지시키거나 지뢰를 다 찾을때까지 프로그램을 계속 진행시킨다.
          * 게임 실패인 상태에 대한 확인하기.
          // 숫자인 경우.
          * Random Open 에 대한 확률 높이기 시도 - 해당 빈칸들에 대해서 주위의 숫자들의 합이 가장 낮은 빈칸을 50%의 확률로 열기 시도. 비교적 빈칸을 여는 확률이 높아지긴 했다. (단, 의미없는 곳이 열리는 경우가 많다는점에서 개선의 여지필요)
  • MoniWikiACL . . . . 11 matches
         아래와 같이 그룹에 대한 효력을 발생시킬 수 있습니다.
         explicit하게 지정할 경우 최종 ACL 항목이 적용된다.
         wildcard를 쓴 경우도 역시 최종 ACL 항목이 적용된다.
          * {{{deny info,diff}}} + {{{allow *}}} = 위의 경우와 같다. explicit하게 지정된 액션인 info, diff만 거부
         /!\ 주의: 모든 경우, explicit하게 지정될 경우에 효력이 발생한다.
         == priority가 다른 경우 ACL의 성립 과정 ==
         앞절의 설명은 priority가 같은 경우에 대한 일반적인 설명이었다. 그룹의 priority를 두었을 때는 어떻게 적용될까?
         이 경우 @User의 priority가 높으므로 {{{allow *}}}이 적용된다.
          * 이 경우, allow를 explicit하게 한 모든 액션에 대해 explicit하게 deny를 걸어주어야 된다. {{{deny *}}} 라고만 하면 안된다.
          * 이 경우 등록 사용자에 대해 {{{@User deny *}}} + {{{@User allow edit,savepage}}}이므로 edit,savepage만 허용된다.
  • NSIS/Reference . . . . 11 matches
         || Section || "ZPTest Defaults Modules (required)" || Section 의 시작을 알린다. Section의 이름을 설정. 만일 Section의 이름이 비어있거나 '-'로 시작되는 경우에는 사용자가 선택할 수 없고, 볼 수도 없다. (즉, 반드시 필요한 Section에 대해). 그리고 가장 처음으로 선언되는 Section은 default Section이 되며 역시 필수 Section이 된다.||
         함수는 Section과 비슷한 역할을 한다. 하지만, 다른 점이라면 함수는 installer 에서 직접 선택하여 호출하는것이 아니라, Section 에서 Call 명령어를 통해 호출되어 인스톨러의 기능의 일부들을 보충하는 역할을 한다. 그리고 특별한 경우로써, Callback Function들이 있다.
         || 함수중 'un.' 으로 시작하는 것들은 일반적으로 Uninstaller를 위한 함수들이다. Uninstall Section이 정의되어있지 않은 경우, 호출되지 않을 것이다.
         Label은 Goto 명령어나 기타 조건제어문들 (IfErrors, MessageBox, IfFileExists, StrCmp 등)을 위해 이용한다.
         || File || ([/r] file|wildcard [...]) | /oname=file.data infile.dat||해당 output path ($OUTDIR)에 화일들을 추가한다. 와일드카드 (?, *) 등을 이용할 수 있다. 만일 /r 옵션을 이용할 경우, 해당 화일들와 디렉토리들이 재귀적으로 추가된다. (rm -rf의 'r' 옵션의 의미를 생각하길) ||
         || WriteRegStr || root_key subkey key_name value || 레지스트리에 기록. root키의 경우 다음이 가능. HKCR - HKEY_CLASSES_ROOT ||
         || IfErrors || . || . ||
         || ClearErrors || . || . ||
         || SetErrors || . || . ||
         특정 이벤트 발생시에 호출되는 함수들이다.
  • 1thPCinCAUCSE . . . . 10 matches
          * 프로그램의 실행시간이 일정시간(예: 10초)을 지나도 끝나지 않을 경우 틀린 문제가 됩니다.
          * 컴파일 error, 실행 시간 error , 출력 포맷이 문제에서 정한 것과 다른 경우에도 틀림.
          * 제출한 답안이 틀렸을 경우, 매번 일정한 penalty 점수 (10점)를 받게 된다.
         아쉬운 점이라면, 국내 대학생 프로그램 경진 대회와 acm의 icpc를 모델로 하는 듯 한데, 그렇다면 사용언어와 플랫폼 역시 좀 선택의 폭 을 넓게 해주는 게 좋지 않을까 하군요.
         이제까지 제가 봐온 대학생 수준의 경진대회 중에서 개발환경과 언어 모두 를 이렇게 한정한 경우는, 특정 회사에서 스폰서를 하는 경우 빼고는 본 적이 없습니다. (최근 정보처리 자격증 실기 시험에서도 모든 언어를 허용하도록 바뀌었다고 합니다) 더 많은 배움의 기회가 될 것인데 참 아쉽군요.
         수학 경진 대회건, 프로그래밍 경진 대회건 그걸 준비하는 사람들은 매일 비슷비슷한 유형의 문제들만 "최단시간내에" 풀어제끼는 훈련을 하고, 덕분에 어떤 해답 집합을 미리 외우고 있 습니다. 알고리즘 X하면 바로 무의식적으로 손 끝에서 해당 알고리즘을 구현한 모범 답안이 튀어나오게 자신이 프로그램 되어 있죠. 다 좋습니다만, 모든 사람이 그렇게 훈련받을 필요는 없지 않을까요?
         저는 일단은 학생들이 그 주제 자체가 매력적이어서 정말 참여 해보고 싶은 생각이 마구 드는 경우가 이상적이라고 봅니다. 꼭 지적도전을 좋아하는 사람들만이 아닐지라도 "야, 저거 한번 해보면 참 재미있겠다" 그런 생각이 드는 것 말이죠. 그리고 거기에서 각자의 수준에 맞게 저마다 무언가 배우고 얻을 수 있다면 더 좋겠죠.
         또한 모든 문제에 대해 출제자가 예상하는 해답이 있을 것이고, 올바르게 작동은 하지만 수행시간이 훨씬 더 걸리는(알고리즘의 컴플렉시티가 훨씬 높은) 답안이 있을 터인데, "일정시간" 내에 수행이 완료될 수 있다면 더 단순한 답안을 고를 수 있는 능력도 아주 중요할 것이다. 예컨대, 이번 대회의 예제 문제 B번(http://cs.kaist.ac.kr/~acmicpc/B_word.pdf ) 경우, (아마도) 출제자가 예상하는 답안의 실행 시간이나, 혹은 그렇지는 않지만(꽤 무식한 방법을 쓰지만) 올바르게 작동하는 답안의 실행 시간이나 모두 1초 이내이다. 후자의 방법을 생각해 내고, 프로그램 하는 데에는 보통 전산학과 학생이라면(그리고 그가 ["STL"], 특히 Permutation Generator를 다룰 수 있다면) 5분이면 떡을 치고도 남는다.
  • HowToStudyDesignPatterns . . . . 10 matches
         DPSC를 구입한 분들이 좀 있는 것으로 보아, DP를 공부하려는 움직임 같은 게 있지 않을까 하는 생각에 "조금 먼저 공부한 사람"으로서 몇 가지 조언을 드릴까 합니다. (DPSC 이야기가 안나왔으면 이런 글 쓰지 않았을텐데... 이것도 인연이라면 인연이네요)
          ''최소한 언어 교육에 있어서는 피교육자의 "기쁨에 찬" 동의가 없으면 별로 효과를 볼 수 없다는 게 제 생각입니다. 모르는 사람은 아예 모르기 때문에 아직 공부할 필요가 없으며 아는 사람은 이미 알기 때문에 다시 공부할 필요가 없습니다. 아는 것도 모르는 것도 아니고 어중간한 상태에서 나름의 문제의식을 갖고 있는 경우, 이 사람에게 누군가가 "제대로 된" 한두마디만 던져줘도 그는 열가지 스무가지 일사천리로 소화하고 이해하며 자발적인 학습을 하게 됩니다.
         이런 동의라는 것은 학습자 자신만의 컨텍스트와 문제의식을 바탕으로 한 것입니다. 우리는 많은 경우, 어떤 지식과 동시의 그 지식의 필요성까지도 지식화해서 외부에서 주입을 받습니다. 하지만 진정 체화된 지식을 위해서는 스스로가 이미 문제의식을 갖고 있어야 합니다.
         패턴도 마찬가지인데, 대부분 그 패턴의 필요성을 체감하지 못한 채 그냥 도식적 구조를 외우기에만 주력하는 사람이 많습니다만, 사실 그렇게 되면 어떤 경우에 이 패턴이 필요하고 어떤 경우에는 사용하면 안되는지 등을 알기 힘듭니다. 설령 책에 나온 가이드를 암기했더라도요. 자신의 삶 속에서 문제의식이 구체적으로 실제 경험으로 형성되지 않았기 때문입니다.
         따라서, 패턴 하나를 공부할 때에는 가능한 한 실제 예를 많이 접하도록 해야 합니다. 그리고 패턴을 적용하지 않은 경우에서 그 필요를 느끼고 설명할 수 있게끔 다양한 코드를 접해야 합니다.
         제가 여러번 강조한, 어떤 지식을 체화하기 위해선 그 지식으로 살아야 한다는 말을 여기서도 확인할 수 있군요. 영어를 배우려면 영어로 살고, DP를 배우려면 DP로 살아라. 단순하면서도 아주 강력한 말 아닙니까.
         주변에서 특정 패턴이 구현된 코드를 구하기가 힘들다면 이 패턴을 자신이 만지고 있는 코드에 적용해 보려고 노력해 볼 수 있습니다. 이렇게 해보고 저렇게도 해보고, 그러다가 오히려 복잡도만 증가하면 "아 이 경우에는 이 패턴을 쓰면 안되겠구나"하는 걸 학습할 수도 있죠. GoF는 한결 같이 패턴을 배울 때에는 "이 패턴이 적합한 상황과 동시에 이 패턴이 악용/오용될 수 있는 상황"을 함께 공부하라고 합니다.
         우리가 갖고 있는 지식이라는 것은 한가지 표현양상(representation)으로만 이뤄져 있지 않습니다. "사과"라는 대상을 음식으로도, 그림의 대상으로도 이해할 수 있어야 합니다. 실제 패턴이 적용된 "다양한 경우"를 접하도록 하라는 것이 이런 겁니다. 동일 대상에 대한 다양한 접근을 시도하라는 것이죠. 자바로 구현된 코드도 보고, C++로 된 것도 보고, 스몰토크로 된 것도 봐야 합니다. 설령 "오로지 자바족"(전 이런 사람들을 Javarian이라고 부릅니다. Java와 barbarian을 합성해서 만든 조어지요. 이런 "하나만 열나리 공부하는 것"의 병폐에 대해서는 존 블리스사이즈가 C++ Report에 쓴 Diversify라는 기사를 읽어보세요 http://www.research.ibm.com/people/v/vlis/pubs/gurus-99.pdf) 이라고 할지라도요. 그래야 비로소 자바로도 "상황에 맞는" 제대로 된 패턴을 구현할 수 있습니다. 패턴은 그 구현(implementation)보다 의도(intent)가 더 중요하다는 사실을 꼭 잊지 말고, 설명을 위한 방편으로 채용된 한가지 도식에 자신의 사고를 구속하는
         하긴, 패턴도 "문제해결"을 위한 한가지 방편에 지나지 않겠군요. 주변에서 "이 경우에는 무조건 이 패턴을 써야 합니다"라고 생떼를 쓰는 사람을 보면 씁쓸한 기분을 감출 수 없습니다.
  • PascalTriangle . . . . 10 matches
          /* 열의 값이 행보다 클 경우 종료 */
          /* 주어진 값을 검사하여, 첫번째 열이 1이거나 행과 열이 같은경우 1을 리턴 */
          /* 그렇지 않은 경우 행과 열을 1씩 감소해서 재귀 호출한 값과
          // 그 외의 경우에는 공식을 따른다.
          /* 열이 행보다 클 경우 종료 */
          /* 열이 1이거나 행과 열이 같은 경우, 1을 대입 한다 */
          /* 그렇지 않은 경우 전 행(i - 1) 전 열(j - 1)의 값과,
          if(n<0 || n>35 || m<0 || m>n) // 행과 열의 값이 잘못된경우 0을 리턴
          if(n<0 || n>18 || m<0 || m>n) // 행과 열의 값이 잘못된 경우 0을 리턴
          // 계산중에 오버플로우가 일어나는 경우를 줄일수 있어
  • ProjectZephyrus/ClientJourney . . . . 10 matches
          * 소프트웨어 개발이 공장스타일이 될 수 없는 이유를 하나 든다고 한다면 개발중 개발자가 계속 학습을 해나간다는 점에 있지 않을까 한다. 처음부터 끝까지 모든 것을 다 예상하고 개발할 수 는 없을것이니. (필요한 라이브러리가 무엇인지, 실제 그 라이브러리의 장단점이 무엇인지, 어떻게 사용하면 바로 알수 없는 버그가 되어버리는지 등등. 뭐 큰 소프트웨어일 경우 이것을 다 예측해야 한다라고 하면 할말없지만. 이것도 비용을 고려해서 처신해야하겠지. Cost Estimate 자체가 Cost 가 드는것일거니.) 암튼 아쉬운건 중간에 디자인이 바뀌었을때 (실제로 처음 디자인의 클래스들을 몇개 뺀것도 있고, 인터페이스만 맞춰본 것들도 있고 그러함) 바쁜 사람들이 참석을 하지 못해서 처음부터 설명해야 하는 경우이다.
          * 학교에서의 작업의 단점중 하나는 고정된 장소와 고정된 스케줄을 만들기가 쉽지 않다는 점이다. 학교시간표 보고 빈 시간대를 맞춰야 하고, 그 사람은 또 그 사람 나름대로의 스케줄이 따로 존재한다. 시험이라던지, 동아리 활동이라던지 등등. 이 경우 팀원별 스케줄을 보고 팀내 기여도를 예상한다음 그 기여도를 줄여주도록 해야 서로가 부담이 적을 것이다. 단, 위에서 언급한대로 개발중 지속적인 학습과정이 있는 이상, 중간 참여는 그만큼 어렵게 된다. CVS가 있을 경우 해당 코드의 변화를 지속적으로 관찰해나가야 하며, 외부에 있는 사람은 내부 작업자에게 필요에 따라 해당 문서를 요구해야 한다. (내부 작업자가 어떤 욕을 하건 -_-; 나중에 다시 참여시의 리스크를 줄이려면) 내부 작업자는 그 변화과정을 계속 기록을 남겨야 할 것이다. (Configuration Management 가 되겠지.)
          * 이번 프로젝트의 목적은 Java Study + Team Project 경험이라고 보아야 할 것이다. 아쉽게도 처음에 공부할 것을 목적으로 이 팀을 제안한 사람들은 자신의 목적과 팀의 목적을 일치시키지 못했고, 이는 개인의 스케줄관리의 우선순위 정의 실패 (라고 생각한다. 팀 입장에선. 개인의 경우야 우선순위들이 다를테니 할말없지만, 그로 인한 손실에 대해서 아쉬워할정도라면 개인의 실패와도 연결을 시켜야겠지)로 이어졌다고 본다. (왜 초반 제안자들보다 후반 참여자들이 더 열심히 뛰었을까) 한편, 선배의 입장으로선 팀의 목적인 개개인의 실력향상부분을 간과하고 혼자서 너무 많이 진행했다는 점에선 또 개인의 목적과 팀의 목적의 불일치로서 이 또한 실패이다. 완성된 프로그램만이 중요한건 아닐것이다. (하지만, 나의 경우 Java Study 와 Team Project 경험 향상도 내 목적중 하나가 되므로, 내 기여도를 올리는 것은 나에게 이익이다. Team Project 경험을 위해 PairProgramming를 했고, 대화를 위한 모델링을 했으며, CVS에 commit 을 했고, 중간에 바쁜 사람들의 스케줄을 뺐다.) 암튼, 스스로 한 만큼 얻어간다. Good Pattern 이건 Anti Pattern 이건.
         간단한 에코서버 관련 프로그래밍을 하는 것인데, 일부러 할일을 주석으로 쓴 뒤, 한단계씩 넘어가는 방법을 써 보았다. TDD 까지는 아니지만, 작은 단계단계를 만들고 확인해보는 것이 더 효과적인 것 같다. [[BR]]
         이힛.. 저번 시간에 졸려서 멍한 상태인데다가 의혈문화제 공연준비한다고 공부를 등한시한 상태였다. 친구들과 6시 영화보기로 했던 것들 취소함으로써 더더욱 나 자신이 '도대체 어떤 것이 우선일까... 지금 내가 무엇을 하는 것이 가장 현명할까..' 에 대해 고민을 하면서 반성하고 있었다. 그런 나에게 화도 안내고 차분히 설명해주는 형에게 너무 미안했다. 그래서 영화보는걸 취소했다. 내가 그 자리에서 할 수 있는 최선의 방안이었고 후회하지 않는다. 근데 남는게 별로 없었다. 멍한 상태여서..-_- 오늘은 공부를 좀 한 상태여서기 보다는 개념을 이해한 상태여서 자신이 있었다. 개념만 이해하면 나머지는 어렵지 않을 것이라는 나의 변하지 않는 생각때문에.. 이제 자바 숙제좀 하고나서 메신저 기본 틀을 짜봐야겠다. --창섭
         1002의 경우 UML을 공부한 관계로, 좀 더 구조적으로 서술 할 수 있었던 것 같다. 설명을 위해 Conceptual Model 수준의 Class Diagram 과 Sequence, 그리고 거기에 Agile Modeling 에서 잠깐 봤었던 UI 에 따른 페이지 전환 관계에 대한 그림을 하나 더 그려서 설명했다. 하나의 프로그램에 대해 여러 각도에서 바라보는 것이 프로그램을 이해하는데 더 편했던 것 같다. [[BR]]
  • Refactoring/BadSmellsInCode . . . . 10 matches
         여기에서 우리는 Refactoring이 적용가능한 아주 정확한 척도를 제공하려고는 하지 않을 것이다. 경험상, 어떠한 측정도구들도 숙련된 인간의 직관의 경쟁상대가 될 수는 없었다. 우리가 하려는 것은 Refactoring에 의해 해결될 수 있는 문제들이 있는 몇몇 부분을 지적하려는 것이다.
          * 코드는 비슷하지만 똑같지는 않은 경우 - 비슷한 부분에 대해서 ExtractMethod
          * 대부분의 경우에 대해서 - ExtractMethod
          * ExtractMethod 하는중 parameter를 많이 넘겨야 하거나, 임시변수를 많이 사용하게 되는 경우 - ReplaceTempWithQuery, IntroduceParameterObject, PreserveWholeObject, ReplaceMethodWithMethodObject
          * logic을 가지지 않는 여러개의 data item을 가지는 경우 - IntroduceParameterObject
          * 바뀌어야 하는 경우들을 명확하게 한뒤 ExtractClass 하여 하나의 클래스에 모은다.
          * 대부분의 경우 - polymorphism으로 해결 가능
          * polymorphism을 이용하기에는 너무 작아 오히려 cost가 더 드는 경우 - ReplaceParameterWithExplicitmethods
          * 조건 case 에 null 이 있는 경우 - IntroduceNullObject
         서브클래스가 부모의 behavior는 재사용하나 부모의 인터페이스를 지원하기를 원하지는 않을 때.
  • ReleaseDebugBuildStartGo의관계 . . . . 10 matches
          이 코드를 릴리즈 빌드로 만들고, Start(CTRL+F5)로 실행할 때의 b값과 Go(F5)로 실행할 때의 b값을 체크하면 서로 다르게 나옵니다. Start의 경우 b의 값이 false가 나오고, Go의 경우 b의 값이 true로 나옵니다. 바꾸어 말하면 Start는 미초기화 변수를 0으로 놓고, Go는 0이 아닌 값으로 세팅한다는 것입니다. (실제로 bool 타입의 false 값을 VC6의 디버거로 읽으면 0입니다. VC7의 경우엔 false라고 나오지만요)
          한데, 디버그 빌드의 경우는 어떨까요? 그 경우에는 Start나 Go나 차이를 보이지 않고 b값이 true입니다. 여기서 자그마한 결론을 얻을 수 있습니다.
          1. 디버그 빌드를 했거나 F5로 실행시키는 경우, 미초기화 변수는 0이 아닌 값으로 초기화된다.
          2. 릴리즈 빌드한 프로그램을 CTRL-F5로 실행시키는 경우, 미초기화 변수는 0으로 초기화된다.
          디버깅할 때는 잘 돌던 프로그램이 그냥 실행시킬 땐 오동작을 보이는 경우가 있어 막대한 육체적/정신적 에너지를 낭비하는 경우가 있는데, 그런 경우를 만난다면 이 글의 내용을 한 번쯤 떠올려 보시기 바랍니다. 그리고 다음의 점검을 해보시기 바랍니다.
  • STLErrorDecryptor . . . . 10 matches
         본 문서는 [http://www.kwak101.pe.kr/kwak101/works/InternData/STLDecryptor_QuickGuide.html QuickInstallation For STLErrorDecryptor] 의 '''내용을 백업하기 위한 목적'''으로 만든 페이지입니다. 따라서 원 홈페이지의 자료가 사라지지 않은 이상 가능하면 원 홈페이지에서 글을 읽으셨으면 합니다.
         가) Visual C++가 설치된 디렉토리로 이동하고, 여기서 \bin 디렉토리까지 찾아 들어갑니다. (제 경우에는 D:\Program Files2\Microsoft Visual Studio .NET\Vc7\bin입니다.) 제대로 갔으면, 원래의 CL을 백업용으로 모셔다 놓을 폴더를 하나 만듭니다. (제 경우에는 '''native_cl'''이란 이름으로 만들었습니다.) 그리고 나서 CL.EXE를 그 폴더에 복사해 둡니다.
         여기서 "Enable Filtering"을 선택하면 그때부터 STL 에러 필터링이 가능해집니다. 그리고, 앞으로 STL 에러 필터링을 활성화하거나 비활성화할 때에는 이 태스크바의 아이콘을 사용하면 됩니다(Enable filtering/Disable filtering을 선택하면 되겠죠). 필터링이 활성화 되어 있느냐 그렇지 않으냐의 여부는 작업 표시줄의 아이콘 색깔( Upload:STLTaskActIcon.gif 은 활성화되었다는 뜻)로 확인할 수 있습니다.
         이제 다 끝났습니다. 해독기가 제대로 설치되었는지 확인하는 의미에서 에러를 일으켜봐야겠습니다.^^
         -> STL 필터링이 활성화되어 있지 않았을 때의 컴파일 결과(VC++.NET의 경우)는 다음과 같습니다. 절망적인 암호가 널브러져 있음을 알 수 있습니다.
         error C2664: 'std::basic_string<_Elem,_Traits,_Ax>::basic_string(const std::basic_string<_Elem,_Traits,_Ax>::_Alloc &) with [_Elem=char,_Traits=std::char_traits<char>,_Ax=std::allocator<char>]' : 매개 변수 1을(를) 'int'에서 'const std::basic_string<_Elem,_Traits,_Ax>::_Alloc & with [_Elem=char,_Traits=std::char_traits<char>,_Ax=std::allocator<char>]'(으)로 변환할 수 없습니다.; 원인: 'int'에서 'const std::basic_string<_Elem,_Traits,_Ax>::_Alloc with [_Elem=char,_Traits=std::char_traits<char>,_Ax=std::allocator<char>]'(으)로 변환할 수 없습니다.; 소스 형식을 가져올 수 있는 생성자가 없거나 생성자 오버로드 확인이 모호합니다.
          -> STL 필터링이 활성화되어 있을 때의 컴파일 결과(VC++.NET의 경우)는 다음과 같습니다. 참으로 많은 부분이 알기 쉽게 되어 있음을 알 수 있습니다.
         error C2664: 'string::basic_string(alloc &)': 매개 변수 1을(를) 'int'에서 'alloc &'(으)로 변환할 수 없습니다.;원인: 'int'에서 'alloc'(으)로 변환할 수 없습니다.; 소스 형식을 가져올 수 있는 생성자가 없거나 생성자 오버로드 확인이 모호합니다.
         ''참고) VC++.NET을 사용하시는 분의 경우엔 컴파일 전에 반드시 /WL 옵션을 주어야 합니다. /WL 옵션은 모든 에러 및 경고 메시지를 한 줄로 표시해 주는 옵션입니다. VC++.NET은 소스 코드 한 줄에 대한 에러 메시지를 여러 줄에 걸쳐(\n문자를 끼워넣어서) 표시하는데, 에러 필터링 스크립트는 에러 메시지가 한 줄로 되어 있을 때 재대로 동작하기 때문입니다. 아래와 같이 프로젝트 속성 페이지에서 [C/C++]의 [명령줄] 항목을 선택한 후 /WL 옵션을 추가합시다.''
  • ViImproved/설명서 . . . . 10 matches
          앞에 붙는 수치 행/칼럼 번호 (z G | ) 스크롤양 (^D ^U) 반복 효과 (대부분의 경우)
          ZZ (=:wq) 파일이 수정된 경우는 그 파일에 쓰고 종료 수정이 없으면 그대로 종료
          :w! ↓ 허가되지 않은 경우에 강제 써넣기
          $vi -r 화일명 시스템이 불시에 꺼졌거나(인터럽 발생시), 저장을 하지 않고 나왔을 때 파일의 변경 내용을 복구함
          ^R ^L가 →key에 있는 경우 화면을 소거하고 refesh
         errorbells(eb) errorbells 에러 발생시 벨울림
         showmatch(sm) {,(등을 눌린 경우 매칭되는 },)을 찾아 1초 동안 출력하고 원위치로 돌아옴
         slowopen(slow) tab을 눌렀을 경우 이동한 공간 설정
         tabstop(ts=) 다른 화일의 tab간격이 다른 경우
         window=(w=) 편집된 내용이 저장되지 않고 쉘 명령을 사용할 경우 경고 메시지를 출력
  • Z&D토론백업 . . . . 10 matches
         데블스 경우에도 활동 상황이 미약하여, ZP와 데블스의 통합 효과가 극히 미미해 보이는군요.
         저도 이에 대해서 생각해 보았는데.. 데블스 게시판에서 김승태 선배님이 쓰신 글을 보고 좀 느낀것이 있어서 이렇게 써봅니다. 그 글을 보고 느낀 것은 활동 저조 및 인원이 줄어든 이유는 아무래도 학회에 대한 우선순위를 개인이 낮게 잡은것도 그 원인중 하나라고 생각됩니다. 정말 학회에 대해서 일부 사람은 어쩌다가 시간 맞으면 세미나에 나오는 식인 경우도 있는듯 합니다. 그리고 그 선배님이 지금까지 데블스의 전통이었던 일주일 밤샘에서 더 나아가서 (한달 밤샘을 예로 들었습니다.) 더 획기적인 방안으로 새로운 후배들에게 충격을 주어야 하지 않을까라는 말에도 뭔가 느껴지는 것이 있었습니다. 그러나 이렇게 선배님들이 보시기에는 미흡한것 같지만 데블스와 제로페이지의 00선배들이나 01 동기들도 모두 학회에 대해서 많이 생각하고 발전시키기 위해서 노력하고 있습니다.
          * 답변 겸 해서 발전 방안(?)이라 생각되어 남깁니다. ZP에는 군제대나 병특제대후 복학한 회원이 거의 없습니다. 왜 그럴까요? 먼저 군제대후 복학한 사람들의 경우를 보면 다시 발을 들여놓기 힘든 분위기라는 것입니다(제가 느끼기에 말이죠.). 어느 누구도 복학한 사람들에게 ZP로 복귀하기를 요청하지 않은 것이 아닐까 하는 생각이 듭니다..(저도 요청하지 않았지만..--;). 신입생 모집할 때 1학년 수업에만 들어가지 말고(아직 이렇게 하겠죠?) 2/3/4 학년 수업에도 들어가서 모집을 하면 되겠지요.. 병특 끝나고 복귀한 사람이 없는 건 당연합니다..^^ 제가 96학번인데, 우리 학번중에서 병특 끝난 사람이 한명인가 거든요. 이 경우도 공익이라서 빨리 끝난 경우라.. 아무튼 98 학번들중에는 되돌아 올 사람이 좀 되겠지요.. 딴 애기로 빠졌는데.. 2/3/4 학년 수업에도 들어가서 회원 모집을 하면 많은(?) 복학생들은 다시 불러들일 수 있지 않을까 생각됩니다.. 군대를 갔다오면 머리가 빈다고는 하지만 그래도 좀 지나니깐 잘하더군요.. 그들도 ZP의 일원으로 만들면 고학번 주도적인 프로젝트를 진행할 수 있을 듯합니다. 머.. 이 경우의 고학번 주도 프로젝트라고해서 대단한게 나오지는 않겠지만..학회가 살아 움직이는데 도움이 되지 않을까 생각합니다. 참고로 동국대 전산과의 한 모임은 군대문제가 없는 사람들만 뽑더군요. 여자나 복학한 사람이나 병특할 사람이나.. 제가 보기엔 잘 돌아 가는 것 같았습니다. ZP에서는 신입생도 뽑고 복학생도 뽑아서 잘 섞으연 이들보다 잘 되지 않을까요? - 김수영
  • 데블스캠프2002/진행상황 . . . . 10 matches
         강사/진행자들의 후기 페이지입니다. 이 또한 ["ThreeFs"] 를 생각하기 바랍니다. 오늘의 글들이 다음날, 또는 내년에 쓰일것임을 생각하시길. 그날 자신이 했던 일들 (또는 다른 사람이 했던 일들)을 확인하고, 그에 대해서 무엇이 잘되었는지, 왜 잘되었는지, 무엇이 잘 안되었는지, 왜 안되었는지를 확인하고, 앞으로의 대안을 생각해보도록 작성합시다.
          * 세미나나 스터디를 준비할때 앞 세미나의 흐름이 연결되었을 경우 그 진행이 더 쉽다. 앞에서의 세미나 내용을 이용하여 설명하면 강사나 학습자나 서로 시간낭비를 줄일 수 있으니까. 추후 이러한 세미나 준비를 할때 그 체계성을 고려해야 할 것이다.
          * OOP를 바로 설명하기 전에 나의 프로그래밍 사고 방식을 깨닫고, StructuredProgramming 의 경우와 ObjectOrientedProgramming 의 경우에는 어떠한지, 그 사고방식의 이해에 촛점을 맞추었다.
          * StructuredProgramming - 창준이형이 역사적인 관점에서의 StructuredProgramming에 대해 설명을 하셨다. 그 다음 ["1002"]는 ["RandomWalk2"] 문제에 대해서 StructuredProgramming을 적용하여 풀어나가는 과정을 설명해 나갔다. (원래 예정의 경우 StructuredProgramming 으로 ["RandomWalk2"] 를 만들어가는 과정을 자세하게 보여주려고 했지만, 시간관계상 Prototype 정도에서 그쳤다)
         다른 하나는, 요구사항이 어떻게 제시되느냐가 산출물로서의 프로그램에 큰 영향을 끼친다는 점이다. 요구사항이 어떤 순서로 제시되느냐, 심지어는 어떤 시제로 제시되느냐가 프로그램에 큰 영향을 끼친다. 심리학에서 흥미로운 결과를 찾아냈다. "내일은 한국과 브라질의 경기날입니다. 결과가 어떻게 될까요?"라는 질문과, "어제는 한국과 브라질의 경기가 있었습니다. 결과가 어땠나요?"라는 질문에 대해 사람들의 대답은 큰 차이가 있었다. 후자 경우가 훨씬 더 풍부하고, 자세하며, 구체적인 정보를 끌어냈다. 이 사실은 요구사항에도 적용이 되어서, 요구사항의 내용을 "미래 완료형"이나 "과거형"으로 표현하는 방법(Wiki:FuturePerfectThinking )도 생겼다. "This system will provide a friendly user interface"보다, "This system will have provided a friendly user interface"가 낫다는 이야기다. 어찌되었건, 우리는 요구사항이 표현된 "글" 자체에 종속되고, 많은 영향을 받는다.
         꼭 생소하다의 문제를 떠나서, 전반적인 컴퓨터 동작원리 보다 구체적 용어들 (어떻게 보면, 이미 공부하여 알고 있는 사람들의 경우 일상어화 되어버린 언어들)이 먼저 나와버렸기 때문이다. 컴퓨터가 하드웨어와 소프트웨어로 구분되어지기 이전엔 어떠했는지, 그게 하드웨어와 소프트웨어로서 구분하는 방법으로서 폰 노이만 아키텍쳐가 나온 이야기라던지, 그러하기 때문에 PC 카운터가 필요하며 메모리로부터 명령어를 읽어온 뒤, CPU에서 명령을 해석하고 처리한다라던지 등등. 그러한 이야기가 나오기전에 어드레스/세그먼트/옵셋/디코딩 이 나와버렸기 때문에 어려운 세미나가 되어버렸다고 생각한다. 후에 상민이가 다시 동작원리부터 상대적으로 쉬운 용어로 설명을 해주면서 사람들의 반응을 유도한점에 대해서는 사람들이 한번 생각을 해볼 필요가 있다. 우리와 대화하는 사람은 어느정도의 지식수준을 가지고 있는가에 대해서. 정말 이해 안가는 부분에 대해서는 질문 자체를 만들어내기 힘들다. --석천
          * 불필요한 스레드란 없으니 걱정말고. ^^; 개인적으로 C 와 어셈과의 포인터관계를 어디서 찾았냐면, 해당 주소값이란 것이 무엇인가에서 찾았다. (단, 내가 정직이나 남훈이보단 하드웨어 관련지식이 깊지 않다) '포인터 값을 화면에 찍었을 경우에 나오는 엄청나게 큰 숫자(윈도우의 경우 32비트) 의 의미는 무엇인가?' 라는 질문을 하게 되었고. 그 이후 메모리가 16메가바이트라는 건 메모리에 0번부터 16메가바이트-1 이라는 번호를 부여하고, 해당 번호에 값을 대입하는 것이라는 접근을 하게 되었지. (물론, 이것도 물리적 주소는 아니겠지. 결국 우리가 이용하는 주소란 OS 에 의해 한번 걸러진 논리적 주소겠지.) 추상화의 정도를 이야기하라는 건 꼭 해당 언어 기준으로 이야기하라는 게 아니라, 경험에 대한 연결고리(여기서는 'C에서 포인터 변수를 화면에 찍어보니 이상하게 큰 숫자가 나왔다' 정도)를 찾아보자라고 한다면 정말 이야기가 '추상적'이려나; --석천
  • 이영호/nProtect Reverse Engineering . . . . 10 matches
         nexon의 경우 Protector를 외주에 주는 것이 아니라 게임을 만드는 팀 자체에서 설계하여 완성하는 것 같다.
         확인 결과 nProtect와 guardcat은 비슷한 역할을 수행하는 것을 발견하였다.
         마비노기가 아닌 다른 nProtect를 사용하는 게임을 확인한 결과 소스에 포함되어 Exception Handling을 한다는 것을 발견하였다.)
         guardcat을 확인하니 EnumServicesStatusA로 Process의 정보를 빼와서 OpenProcess로 열어 debug를 확인 하는 루틴을 발견하였다.
         이것을 인라인 패치하였지만, OpenProcess로 디버그 Process를 Hooking하는 함수는 gc_proch.dll에 있다는 것을 확인하였다.
         두개를 고쳤지만 게임을 실행하니 원래대로 돌아가 있다는 것을 확인 후, 업데이트 파일이 있다는 것을 깨닫고, 파일을 변경 하였지만 시도는 성공 되지 않았다.
         이렇게 동작하는 것을 확인하였다.
         2. client.exe(client가 실행될 때, gameguard와는 별개로 디버거가 있는지 확인하는 루틴이 있는 듯하다. 이 파일의 순서는 이렇다. 1. 데이터 파일의 무결성검사-확인해보지는 않았지만, 이게 문제가 될 소지가 있다. 2. Debugger Process가 있는지 Check.-있다면 프로세스를 종료한다. 3. gcupdater.exe를 서버로부터 받아온다. 4. createprocess로 gcupdater를 실행한다. 5. 자체 게임 루틴을 실행하고 gcupdater와 IPC를 사용할 thread를 만든다.)
  • 정모/2011.4.4 . . . . 10 matches
          * 세 명 이상일 경우 질문자가 세 명을 선택하여 답변을 듣는다.
          * 세 명이 안 될 경우 질문자가 원하는 사람을 지목하여 총 세 명의 답변을 듣는다.
          * 문법의 경우, 일정 금액을 만족할 때까지 돈을 계속 늘려가면서 지불하고, 거절당하는 수를 센다고 가정해보자([송지원])
          * 다른건 몰라도 뭔가 배운다 하면 죽었다 깨나도 꼭 알고 가야하는걸 가르치면 그걸로 충분하다. 하지만 성현이 본인이 날로 먹는거에 대해 고민한다면 '''조성래 교수님은 가르치지 않지만 본인이 알고 있는것'''을 준비해서 가르쳤으면 함. 자기가 아는걸 준비하는 것도 날로 먹는거라고 생각할 수도 있지만 학우들을 가르치게 되면 그건 아는 것에서 완벽하게 자기 것이 되지 않을까.([송지원])
          1. 가장 먼저 느낀 것은 정말로 PairProgramming이 집중도를 높여준다는 것입니다. 사실 컴퓨터를 앞에 놓고 정모를 진행하면 이것저것 다른 일 하느라 정모에 집중하지 않을 수 있는데 혼자 컴퓨터를 쓰는 것이 아니라 그런지 다들 CodeRace에 집중하시더라구요 ㅋㅋ
          1. 학생회장, 총무부장의 예를 드셨는데 어제 제가 총무부장을 언급해서 예로 드신 것인가 싶어 덧붙입니다. 저는 총무부장이 총무부장으로서 맡은 책임을 제대로 이행하지 못하는 부분 때문에 언급한 것입니다. 저는 총무부장의 평소 행실은 알지도 못하며 알아도 평소 행실에 대해 총무부장으로서 부적절하다고 평가할 생각이 없습니다. 그 학우가 디씨 코갤을 다니든, 학고를 맞든 혹은 그 외의 제가 정말 싫어하는 어떤 일을 하더라도 사적인 일이라면 그 학우 개인을 싫어했으면 했지 총무부장답게 행동하라는 말을 하지 않을 것입니다. 다만 저는 총무부장이 총무부장의 책임을 다할 때 그의 언행에 문제가 있다면 그런 것을 지적하는 것입니다.
          1. 따라서 제가 언급한 부분은 송지원 학우께서 저의 행실에 대해 지적하신 부분과 기본적인 관점 면에서 많은 차이를 보입니다. 혹시 굳이 제가 언급해서가 아니라 다른 대표성을 가진 사람이라 예로 드신 것인가 싶어 다른 말도 덧붙입니다. 총무부장이 한 개인으로서 빈틈을 보였다고 총무가 그래도 되냐는 말을 듣는다면 그것이 합리적인 상황입니까? 저는 그런 말은 의미가 없는 말이라 생각합니다. 물론 총무부장이라는 잘 알려진 자리에 있기 때문에 누군가는 그가 평소 빈틈을 보일 때 욕을 할지도 모릅니다. 그러나 그런 경우 총무부장이 모든 비난을 고려할 필요가 전혀 없습니다.
          1. 그리고 이건 별도로 하는 말이지만 저는 시도때도 없이 공격적인 사람은 아닙니다. 어제의 경우 저의 잘못이 없는 상태에서(종이에는 분명 사용 전 제출이라고 적혀있었지 사용 몇일 전에 제출하라는 말은 없었습니다.) 아저씨께서 먼저 비꼬듯이 말씀하셨습니다. 아마 아저씨께서 비꼬지 않고 다음부터는 일찍 가져다달라고만 하셨으면 저도 웃으면서 다음부턴 그렇게 하겠노라고 말씀드렸을 것입니다.
          * 음, 이번에 강의실 대여 논의때 "내가 너무 돈을 밝히는 듯한 언행을 해 오진 않았는지"를 생각해볼 수 있었습니다. 답은 "YES"고요....... 자중해야겠습니다. TDD의 경우는, 제가 평소 뭔가를 만들 때(특히 OOPHP Application) 흔히 사용하던 방식이라(클래스를 만들고 밑에 작동 코드를 적은 다음 브라우저로 확인) 조금만 더 노력하면 다른 곳에서도 사용할 수 있을 것 같습니다. 페어 프로그래밍은...... 소현 누님. 결코 누님의 탓이 아닙니다....... <( ºДº)> - [황현]
  • 지금그때2004/여섯색깔모자20040331 . . . . 10 matches
          - 검정 : 시의성으로 볼때 중요한가. 사회자의 경우 그렇지 않아고 본다
         검정 : 신청서 용지를 돌리면 홍보횟수가 적어도 되지 않을까?
          - 검정 & 하양 : 나의 경우 친구따라 왔다. 실제보다 더 늘어나는 경우도 있지 않은가?
          - 검정 & 하양 : 나의 경우 신청하고 가지 않은 경우에 해당된다.
         검정 : 세미나와 행사진행의 경우는 차이가 있다.
         검정 & 하양 : 작년이나 기타 여러 행사의 경우 시간관리자는 따로 있었다. 이번의 경우도 시간관리자가 따로 있으면 된다.
         검정 : 리허설을 하기에는 뭔가 시간이 부족하지 않을까?
  • 창섭/배치파일 . . . . 10 matches
         이러한 경우 배치 파일은 가장 확실한 해결책입니다.
         여기서 쓰고 싶은 대로 적기만 하면 됩니다.제일 마지막행의 ^Z 는 파일의 제일 마지막 부분이라는 것을 도스에게 알려주는 코드로 < Ctrl + Z > 키 또는 F6 키를 누르면 됩니다. 그리고 엔터키를 한번더 누르면 '1 File(s) copied' 라는 메세지가 출력되는데, 이는 방금 ' copy con 파일명 ' 으로 작성된 문서파일이 성공적으로 만들어졌다는 뜻입니다.위의 문서파일은 확장자가 .BAT 로 붙었기 때문에 실행가능한 외부 명령어가 되는데, 배치파일은 명령이 기록되어 있는 순서대로 실행되기 때문에 timedate.bat 를 실행시키면 먼저 화면을 지우고 난뒤 시스템의 시간과 날짜를 설정합니다.간단한 배치파일은 'copy con 파일명' 으로 작성하는 것이 다른 프로그램의 도움없이 쉽고 빠르게 처리할 수 있습니다. 하지만 배치파일이 조금 길거나 작성중에 수시로 편집할 일이 생기는 경우에는 불가능합니다. 'copy con 파일명' 으로 파일을 작성하면 행으로 다시돌아갈 수 없을 뿐 아니라 수정이 불가능하기 때문입니다. 그러므로 배치파일을 만들 필요가 있을때는 문서 에디터를 이용하는 것이 좋습니다.
         - %%<변수>, &<변수> : 변수로 사용되는 것은 임의의 영문자로 1자만 허용됩니다. 주의할 점은 배치파일에서 사용할 경우는 반드시 %%처럼 두개를 연달아 사용해야 하며, 일반 도스 프롬프트에서 사용할 때는 % 하나만 사용합니다.
         for %%f in (bak tmp $$$) do del *.%%f /p ☞ 배치파일의 경우
         - ERRORLEVEL <수치> : 바로 전에 실행한 명령(프로그램)의 종료 코드가 <수치> 이상일 때에는 참이 되고 <명령> 이 실행됨.
         if errorlevel 2 goto quit
         직전에 실행한 명령의 종료 코드가 2 이상일 경우 레이블 QUIT로 이동합니다.
         환경변수 %1과 환경변수 %2에 대입되어 있는 문자열이 같지 않을 경우에만 레이블 PROCESS 로 이동합니다.
         ◇ 설명 : 배치 처리 중 pause명령을 만났을때 임의의 다른 메시지를 화면에 출력하고 싶다면 예 에서와 같이 반드시 echo on 명령이 선행되어야 하며 예의 경우에는 ' 준비가 되었으면 아무키나 누르세요...' 라는 메세지가 출력됩니다.
         ◇ 참고 : 위 처럼 하면 화면에 Pause 라는 명령어까지 같이 출력되므로 이런경우
         C:\bats> test.bat A B C D E F G H I J 0 1 2 3 4 5 ☜똑같이 입력하고 실행후 확인.
  • 프로그래머의길 . . . . 10 matches
          현실 속의 안주는 시간과의 싸움이다. 모든 프로젝트는 정해진 시간을 갖고 있다. 초반 설계 단계에 수립된 계획은 불가피하게 수정되는 경우가 태반이다. 이는 코딩중에 예상치 못한 복병(?)을 만나게 되는 경우가 있을 수 있으며, 관리자의 무리한 계획으로 초반 계획이 수정되는 경우도 있다. 모든 프로그래머들은 항상 후자에 치중하게 된다. 현실도피를 위한 희생양으로 몰아세우는 격이지만, 대부분의 경우는 관리자의 이해 부족에 의한 비현실적 계획이 주를 이루기 때문이다.
         이 글을 읽고 있는 독자라면 어느 정도 프로그래밍을 해본 경험이 있을 것이다. 초보자라 함은 프로그래밍에 입문하고자 하는 사람을 말한다. 즉 컴퓨터 사용부터 천천히 배워나가고 있는 사람들이다. 이들은 특정 학원 혹은 학교의 정규 과정을 통해 동료들과 함께 배우기도 하고, 또는 개인적으로 학습해 나가는 경우도 있다. 초보자들의 공통점은 전문가들의 논쟁을 아직 이해 할 수는 없지만큰 관심을 갖고 있으며, 컴퓨터로 모든 일이 가능할 것이라는 부푼 기대에 차있다는 것이다. 여기서 그들의 기대감이 문제시 된다. 기대가 크면 클수록 돌아오는실망감은 비례한다.바로 컴퓨터로 할 수 있는 일이 한정돼 버리는 시점에서 더 이상의 진전이 없게 되는 것이다.
          프로그래머들의 마지막 벽인 '''마음의 벽''', 이 벽은 상당한 의미를 가진다. 전문가로 성장한 프로그래머들은 누구보다도 마음이 굳게 닫혀 있는 경우가 많다. 자신만이 완벽한 코드를 작성해 낸다는 마음자세가 이들을 그렇게 만들어 버린다. 프로그래머의 고집은 가히 말로 표현할 수 없을 정도로 완강하다. 아니 고집이 아닌 아집에 가깝다. 고집은 자신이 스스로 잘못을 인정할 수 있는 수준이지만, 아집은 그 잘못도 자신이 아닌 다른 사람의 영향에 의해 발생한 것이라 말하는 것이다. 고집이 없는 프로그래머는 프로그래머라 할 수는 없지만, 그 고집이 아집이 돼서는 안된다.
         하지만 필자의 경험에 미뤄보면 이러한 경우는 업무 자동화와 같은 특정한 형식이 있는 응용 프로그램에 적용된다. 만약 프로젝트 설계자가 경험이 없는 응용 프로그램을 만들어야 한다는 가정을 두면 상황은 반전된다. 즉 설계자의 미경험에 의한 시행착오가 발생하는 것이다. 이러한 시행착오를 줄이는 방법이 새로운 기술에 대한 프로토타입의 개발이기는 하지만, 프로토타입으로 끝나야 한다. 하지만 우리의 실정은 아직까지도 프로토타입을 완성된 프로그램으로 생각하고 있는 경향이 지배적인것 같다.
         코드를 버러야 하는 두번째 시점은 완성된 프로그램의 버젼 업그레이드에서 발생한다. 첫번째 경우보다 더 많은 용단을 필요로 하는 시점이기도 하다. 응용 프로그램의 버전업은 이미 만들어진 응용 프로그램에 사용자의 추가 요구사항을 수렴해서 개발한다는 의미와 이전 버전에서 발생된 문제점을 해결한다는 의미를 동시에 가지고 있다. 간혹 사용자의 추가 요구사항이 프로그래머가 상상할 수 없는 경우일 때도 있다. 그 모든 요구사항을 다 수렴해 프로그램을 만들수 는 없기 때문에 프로그래머는 타협점을 찾아 다음버전의 기능을 제한시키게 된다.
         바로 사용자와 프로그래머 사이에서 발생되는 타협점을 결정하는 시점에서 프로그래머의 마음 가짐이 능동적인 자세인지 수동적인 자세인지 따라 코딩의 방향이 결정된다. 능동적이고 적극적인 프로그래머는 사용자의 요구사항을 검토해 참신한 아이디어일 경우 이를 적극 수렴한다. 하지만 수동적인 프로그래머는 현재 버전에서 지원될수 있는 사항만을 검토하는 성향이 있다.
  • AutomatedJudgeScript . . . . 9 matches
         이 프로그램에서는 정답과 제출된 프로그램에서 만들어낸 출력 결과가 들어있는 파일을 받아서 아래에 정의된 방법에 따라 Accepted, Presentation Error, Wrong Answer 가운데 하나로 답해야 한다.
         Accepted : 제출된 프로그램에 의한 출력 결과가 정답과 완벽하게 일치하는 경우에 'Accepted'라고 답한다. 모든 문자가 똑같은 순서대로 매치되어야만 한다.
         Presentation Error : 숫자는 전부 같은 순서로 매치되지만 숫자가 아닌 문자가 하나 이상 매치되지 않는 것이 있으면 'Presentation Error'라고 답한다. 예를 들어 '15 0'과 '150'이 입력되었다면 'Presentation Error'라고 답할 수 있지만 '15 0'과 '1 0'이 입력되었다면 아래 설명에 나와있는 것처럼 'Wrong Answer'라고 답해야 한다.
         Run #x: Presentation Error
         Run #3: Presentation Error
         Run #5: Presentation Error
         Run #6: Presentation Error
  • CubicSpline/1002/GraphPanel.py . . . . 9 matches
          self.errorLagrange = ErrorLagrange(DATASET)
          self.errorPiecewiseLagrange = ErrorPiecewiseLagrange(DATASET, 4)
          self.errorCubicSpline = ErrorSpline(DATASET)
          self.plotErrorLagrange(dc)
          self.plotErrorPiecewiseLagrange(dc)
          self.plotErrorCubicSpline(dc)
          def plotErrorLagrange(self, dc):
          self.plotGraph(dc, self.errorLagrange, wxColour(128,128,128))
          def plotErrorPiecewiseLagrange(self, dc):
          self.plotGraph(dc, self.errorPiecewiseLagrange, wxColour(255,255,200))
          def plotErrorCubicSpline(self, dc):
          self.plotGraph(dc, self.errorCubicSpline, wxColour(255,0,255))
  • Eclipse . . . . 9 matches
          * '''Ecilpse가 JRE path문제로 실행이 안되는 경우'''
          * Eclipse를 설치할때 JRE를 Eclipse가 못찾아서 실행 되지 않는 경우가 있다. 특히 학교의 Win98에서 이러하다. 이럴 경우 '''Eclipse 폴더 내에 jdk1.4이상의 jre폴더를 복사'''하면 Install Complete라는 이미지와 함께 Eclipse가 세팅되고 실행 된다. 이후 해당 Eclipse의 실행 포인트 역시 jre의 vm이 되는데,
         [1002]의 경우 jmechanic, pmd, 그리고 잘 모르겠는 profiler (패키지 이름은 ru.nlmk 였는데) plugin 랑 Eclipse Tail 깔아서 쓰는중. 그리고 FreeMarker 작업시 FreeMarker plugin 설치해서 작업중.
          * 올초 Eclipse를 처음 접하고, 좀 큰 프로젝트에 Eclipse를 적용해 보았다. CVS, JUnit, Ant사항을 반영하고 대형 상용 Package를 사용하는 관계로 setting할 것도 많았지만, 개발이 종료된 지금 결과적으로는 매우 성공적인 적용으로 볼 수 있다. 팀프로젝트시 모듈로 나누어 그룹 개발이 될 경우에 매우 효율적이니, 강추함. 앞으로 발전되는 모양을 지켜보거나 참여하면 더 좋을 듯... -- [warbler]
          저랑 경우가 비슷하시군요. 2003년 5월에 평가하고 적용 시작했습니다. 11월말 쯤 종료되었고, 전체 프로젝트에 Eclipse를 적용한 것이 아니라, 제가 맡은 모듈에만 적용했습니다. 전체 프로젝트 인원이 25명정도였는데, 제가 맡은 모듈에는 6명 정도가 참여했습니다. 말씀하신 metric 도구는 한 번 써서 계산해 보겠습니다. 좋은 정보 감사... -- [warbler]
          * 새로운 Eclipse 3.0 은 Eclipse의 오리지날 기능을 발전하고, IntelliJ , VisualStudio 의 에디터 기능들을 많이 차용해 왔다. 뭐랄까, 에디터로 Eclipse 2.0 개발중 추가되었다가 정식에서 사라진 기능들도 일부 들어갔다. 그리고 기대했던 기능들은 새로운 프로젝트로 분리되어 대거 미구현 상태이다. 그래서 1.0->2.0 의 발전이 획기적이라는 느낌이라면, 2.0->3.0은 완성도를 높였다라는 느낌을 받는다. (이제 GTK에서 그냥 죽지 않을까?) 그리고 Sun의 지지 부진한 1.5 발표로 Eclipse까지 덩달아 예정 기능이 연기된것이 아쉽다. -- NeoCoin
          * 2005년 5월 중순경에 3.1 M7 버전이 나왔다. 아마 다음 버전이나 그 다음 버전이 3.1 정식버전이 되지 않을까 싶다. M6에서 M7로 가면서 메모리 사용량이 많이 줄어든 것 같다(Freemem 이라는 플러그인으로 메모리 사용량 확인). 전체적으로 가벼워진 듯한 느낌을 준다. (총 용량은 변화가 거의 없지만) - [임인택]
  • Gnutella-MoreFree . . . . 9 matches
         내가 찾고자 하는 파일이 누가 가지고 있는 지 알고 있다면 굳이 P2P는 필요하지 않을 것이다.
         노드들을 수정해 준다면 가장 이상적이지 않을까? 라고 한 때 무신히 고민했다. 잡소리 이제 그만!!!!
          Gnutella 프로토콜의 경우 synch를 맞추는 특별한 byte가 존재하지 않아
         || queryHit || 검색 Query 조건과 일치한 경우 QueryHit로 응답한다. Num Of Hits 조건에 일치하는 Query의 결과 수 Port / IP_Address (Big-endian) / Speed / Result Set File Index ( 파일 번호 ) File Size ( 파일 크기 )File Name ( 파일 이 / 더블 널로 끝남 ) Servent Identifier 응답하는 Servent의 고유 식별자 Push 에 쓰인다. ||
          방화벽으로 인해 직접 연결이 불가능한 경우 Push Descriptor를 보내고 라우팅을 통해 받은
         void CGnuDownloadShell::Start() 로 다운로드가 시작이 되고 실제적인 다운로드는 CGnuDownload에서 이루어지면 쉘에서는 Timer()에서 CheckCompletion()로 완료 되었는 지 확인을 하게 되고 AttachChunk2Chunk 와 AttachChunk2Partial로 부분부분 완료된 Chunk들을 결합해 주는 역활을 하게 된다.
         OnReceive(int nErrorCode) 에서 Content-length 만큼의 버퍼 데이타를 받아 청크와 연결 시킨다.
         방화벽이 설치된 경우의 자세한 설명
         Firewall에 있을 경우 이런 방법으로 포트를 열지 못하면 랜덤한 포트를 부여 ForcedPort로 접속 Attempts < 3 만큼 시도를 한다.
  • InsideCPU . . . . 9 matches
         위에 로더는 1섹터(512KB) 밖이 되지 않는다. 이는 작은 프로그램 밖이 실행 할 수 없고 메모리의 위치가 0000:7C00으로 불안한 위치이다. 대부분의 커널의 경우 이 메모리 블럭을 넘어서는 크기를 갖게 되므로 바로 커널을 로딩할 경우 로더의 메모리를 잡아 먹게 된다. 그래서 보통 Kernel로더는 자신을 보다 먼 곳의 안전한 곳으로 이동시키고 커널을 로딩하게 된다.
         위와 같은 경우는 플로피에 해당하는 경우이다. 하드드라이브처럼 파티션이 여러개인 경우 MBR 마스터 부트 레코드가 존재하며 멀티 부팅을 위핸 lilo/grub이 올려져 부팅이미지가 있는 파티션을 찾아준다. 플로피와 같은 경우 플로피에 대한 해당 정보를 적어줘야 나중에 플로피 디스크를 DOS에서 읽을 수 있다. 해당 정보는 0번 섹터에 다음과 같은 layer를 적어준다.
         보호모드가 없을 경우 커널은 자신을 지키기 위한 하드웨어적 방법을 잃게 된다. 만약 일반 유저 어플리케이션에서 아무런 제약없이 커널의 메모리 블럭에 접근할 수 있다면 ... 으..생각만해도 끔찍하다.
         실례:: 어셈을 하다보면 이유없이 이런 코드를 쓰는 경우가 있다.
         이를 위해 각각의 어드레스 접근에 privilege level을 두었고 이를 각각의 Application에 적용시켰다. 보호모드의 경우 멀티태스킹을 지원하기 위한 방법이다. 이는 지속적이고 반복적으로 일어나는 Context Switching 을 하드웨어적인 방법으로 만들어 소프트웨어적인 방법보다 빠른 Context Switching을 통해 하드웨어의 효율성을 높였다. 보호모드를 위한 레지스터와 방법들..
  • MoreEffectiveC++/Basic . . . . 9 matches
         사견: Call by Value 보다 Call by Reference와 Const의 조합을 선호하자. 저자의 Effective C++에 전반적으로 언급되어 있고, 프로그래밍을 해보니 괜찮은 편이었다. 단 return에서 말썽이 생기는데, 현재 내 생각은 return에 대해서 회의적이다. 그래서 나는 COM식 표현인 in, out 접두어를 사용해서 아예 인자를 넘겨서 관리한다. C++의 경우 return에 의해 객체를 Call by Reference하면 {} 를 벗어나는 셈이 되는데 어디서 파괴되는 것인가. 다 공부가 부족해서야 쩝 --;
          지역함수 안에서 지역 객체를 생성하여 Reference로 리턴할 경우 지역 함수가 반한되면 지역 객체는 없어질 것이고, 리턴되는 Reference는 존재하지 않는 객체에 대한 다른 이름이 될 것이며, 경우에 따라서 컴파일은 될지모르나 나쁜 코드라고 하네요.-차섭-
         update(const_cast<SpecialWidget*>(pw)); // error!
          // 이럴때는 예외(exception)을 발생시켜 준다.
          * C 에서 지원하지 않을 경우 다음 매크로를 사용하여
         로 사용한다. 느낌이 오겠지! 당연히 상속시 child는 parent보다 큰 경우가 다반사이고 배열의 위치 추적이 엉망 진창이 되어 버린다.
         // 두경우 초기화 해줄 방도가 없어서 에러이다.
         하지만 이럴 경우에는 array를 heap arrays(heap영역 사용 array라는 의미로 받아들임)로의 확장이 불가능한 고정된 방법이다.[[BR]]
  • OurMajorLangIsCAndCPlusPlus/errno.h . . . . 9 matches
         ||2||int ENOENT||그러한 파일이나 디렉토리 없음: 이것은 이미 존재하고 있을 걸로 예상한 파일이 없는 경우에 일어 나는 "파일이 존재하지 않습니다"라는 에러이다.||
         ||4||int EINTR||가로채기 함수 호출;발생한 비동기 신호와 호출의 방해된 종료. 이럴 경우에 당신은 다시 호출을 시도해보라.||
         ||9||int EBADF||잘못된 파일 기록; 예를 들어,닫혀진 파일을 기록하려고 하든지 쓰기 모드로 열려진 파일을 읽으려 고 하는 경우(그 반대의 경우도)||
         ||10||int ECHILD||자식 프로세스(child process)가 없다. 이 에러는 자식 프로세스를 다루는 오퍼레시션을 사용했는 데 다루기위한 어느 프로세스도 존재하재 않을 때 발생한다.||
         ||20||int ENOTDIR||필요하다고 요청된 디렉토리가 존재하지 않을 때 발생.||
         ||34||int ERANGE||범위 에러; 결과 값이 오버플로우나 언더플로우로 인해 표현되지 않을 때 수학적 함수에 의해 사 용된다.||
         || ||int ENOTBLK||어떤 상황에서 주어진 파일에 특별한 블록이 없는 경우. 예를 들면, 보통의 파일을 유닉스 파일 시스 템에 마운트하려 하면 이 에러가 발생한다.||
         || ||int ECONNABORTED||네트웍 연결이 실패하였다. 네트웍 연결이 단절되었는데 그 이유는 원격 시스템이 재부팅하거나 아 니면 복구할수 없는 프로토콜 위반인 경우처럼 로컬 호스트의 제어를 벗어난 것이 이유이다.||
  • PatternOrientedSoftwareArchitecture . . . . 9 matches
          * Scenario4 - 레이어 1에서 event가 감지되었지만 레이어 3까지만 가고 더이상 가지 않는 경우와 같은 경우, 예를 들어서 성격 급한 클라이언트가 데이터를 요청하고, 못 기다리고 금방 다시 요청하는 경우에 첫번째 요청으로 응답 데이터가 가다가 두번째 요청이 오는것과 교차하게 된다. 이때 두번째 요청도 첫번째 요청과 같은 것이기에 이때 이 요청이 도이상 가지 않게 한다.
          * Scenario 5 - N개의 레이어들로 이루어진 2개의 stack 들이 서로 소통 하는 경우이다. 통신 프로토콜이 대표적인 예이다. 한쪽의 레이어 N에서 보내는 요청은 결국 하위 레이어 1(하드웨어 레벨)을 통해서 상대편 하위 레이어1로 전해지고, 이것은 또 N 레이어로 쭉 올라간다.
          * 레이어의 재활용 - 프로그래머들은 현재 존재하는 레이어가 자신의 목적에 맞지 낳는다고 이미 있는것을 재사용 하기보다는 새로 짜는 경우가 많다. 그러나 현재 존재하는 레이어를 재사용(black-box reuse)하는 것은 개발에 드는 노력과 프로그램의 결점들을 극적으로 감소 시킬 수 있다.
          * cascades of changing behavior : 레이어를 바꾸는것뿐만 아니라 그 인터페이스를 바꿀경우에 다른 부분까지 수정해줘야 한다는 말 같다.
          * Unnecessary work : 필요없는 일도 하는 경우가 있다.
          * 생각해야할 문제 : 각각의 문제에 대한 해결책은 다른 표현이나 paradigms 이 필요하다. 많은 경우에 어떻게 '부분적인 문제들을 풀어주는 해결책'이 어떻게 조합되어야 하는지에 대해서 미리 정의된 전략은 없다. 아래의 내용은 이런 종류의 문제를 푸는데 영향을 끼지치는 force(이 패턴이 사용되는 경우?)들이다.
  • RandomWalk2 . . . . 9 matches
          * 뼈대예시 ["RandomWalk2/ClassPrototype"] (OOP를 처음 다루는 경우가 아니라면 보지 않기를 권한다)
         다음은 이상의 요구조건을 만족하는 프로그램 개발이 완료되었을 경우만 본다.
         교육에 있어 이런 작업이 중요한 이유 중 하나는, 자신이 만든 프로그램이 해답을 제대로 내느냐는 것을 확인하는 데에는 한 문제를 한번 푸는 것으로 족하지만, 거기서 코드의 디자인 질을 확인할 수가 없다는 문제가 있기 때문이다. 하지만, 요구사항 변경에 따라 자신이 개발한 프로그램을 다시 수정하게 되면, 이전에 만든 코드의 질에 따라 그 노력에 현격한 차이가 난다. 디자인 질이 높으면 아주 짧은 시간 안에 간단하게 요구사항 변화에 대응할 수 있을 것이고, 질이 낮았다면 장기간에 걸쳐 여기저기를 들쑤시고 골치를 썩혀야 할 것이다.
         다음은 코드 디자인이 좋지 못했을 경우 고생을 할 요구사항 변경들이다. 그냥 대충 생각나는 대로 아무것이나 나열한 게 아니고, 순서나 변경사항이나 모두 철저하게 교육적 효과를 염두에 두고 "디자인"되었다.
         이 경우 총 네마리의 바퀴가 판 위를 돌아다니게 된다.
         출력정보는 바퀴별 움직인 횟수(슈퍼바퀴의 경우 한번에 두칸을 움직이기에 움직인 횟수 역시 두번으로 친다)와 판의 상태다. 앞서의 경우와 동일하다.
         최초의 요구사항 제시 이후에 나온 변경사항들이 따라오지 않을 것이라 가정하고, 만약 이 RandomWalk2 문제를 다시 접했다면 어떻게 접근하겠는가. 어떤 과정을 거쳐서 어떤 프로그램을 개발하겠는가?
  • UnixSocketProgrammingAndWindowsImplementation . . . . 9 matches
          // 에러가 났을경우( sockfd == -1) 에러를 출력하고 프로그램 종료.
          ina.sin_port = htons(PORT); // PORT의 경우 정수를 넣어야한다.
          ina.sin_addr.s_addr = inet_addr(SERVER_IP); // 클라이언트의 경우
          // SERVER_IP의 경우 문자열 포인터를 넣어야한다.
          // ina.sin_addr.s_addr = INADDR_ANY; // 서버의 경우
          fprintf(stderr, "send error");
          fprintf(stderr, "write error");
         ◎ UNIX 체계에서 사용하던 함수들의 헤더파일이 Windows 기반에서는 존재하지 않을 수도 있다.
          fprintf(stderr, "WSAStartup Error"), exit(1);
          fprintf(stderr, "WSAStartup Error"), exit(1);
         void error(char *buf)
          error("WSAStartup Error");
          error("server socket error");
          error("bind() 에러");
          error("listen() 에러");
  • 가위바위보/영동 . . . . 9 matches
          result=0; //sunho가 이긴 경우는 0을 대입
          result=2; //insu가 이긴 경우는 2을 대입
          result=0; //sunho가 이긴 경우는 0을 대입
          result=0; //sunho가 이긴 경우는 0을 대입
          result=2; //insu가 이긴 경우는 2을 대입
          result=2; //insu가 이긴 경우는 2을 대입
          result=1; //비긴 경우에는 1 대입
          result=1; //비긴 경우에는 1 대입
          result=1; //비긴 경우에는 1 대입
  • 김희성/MTFREADER . . . . 9 matches
         #define FILE_LOAD_ERROR 1
         #define OUT_OF_MEMORY_ERROR 2
          int ErrorCode;
          ErrorCode=0;
          if(!GetLastError())
          ErrorCode=FILE_LOAD_ERROR;
          int LastErrorCode(); //최근에 일어난 클래스 내부의 에러를 반환한다.
          ErrorCode=OUT_OF_MEMORY_ERROR;
          ErrorCode=OUT_OF_MEMORY_ERROR;
          printf("error");
         int _MFT_READER::LastErrorCode()
          return ErrorCode;
  • 논문번역/2012년스터디/이민석 . . . . 9 matches
         필기 줄을 전처리한 이미지는 특징 추출 단계의 입력 자료로 사용된다. sliding window 기법을 [11]이 설명하는 접근법과 비슷하게 적용한다. 우리의 경우 이미지의 높이와 열 네 개 크기의 창이 이미지의 왼쪽에서 오른쪽으로 두 열씩 겹치면서 움직이고 기하 추출의 쌍을 추출한다.
         위 식에서 P(W)는 글자 시퀀스 w의 언어 모형 확률이고 P(X|W)는 이 글자 시퀀스를 그 글자 모형에 따라 입력 데이터 x로서 관찰한 확률이다. 우리의 경우 absolute discounting과 backing-off for smoothing of probability distribution을 이용한 바이그램 언어 모형을 적용하였다. (cf. e.g. [3])
         단일 저자식 실험은 Senior 데이터베이스에서 훈련에 282줄, 검정에 141줄을 써서 수행했는데, 글자 수준에서 검정 집합의 바이그램 perplexity는 15.3이다. 베이스라인 시스템의 오류율 13.3%는 바이그램 언어 모형을 채택하여 12.1%로 감소했다. LDA 변환한 특징 공간의 차원이 12로 내려갔지만 오류율은 그다지 커지지 않았다. 단일 저자 시스템의 단어 오류율(표 2)은 어휘 없이 28.5%, 1.5k 어휘가 있으면 10.5%다. 이 결과들은 우리가 같은 데이터베이스를 이용하여 literature(문학 작품은 아닌 것 같다)에서 얻은 오류율과 비교되긴 하지만, 훈련 집합과 검정 집합의 크기가 달라 비교하긴 어렵다. [17]에서 오류율은 글자의 경우 28.3%, 어휘 없는 단어의 경우 84.1%, 1.3k 어휘가 있는 단어의 경우 16.5%다. [15]의 보고에서 단어 오류율은 어휘가 있는 경우 6.6%, 어휘 free인 경우 41.1%다. [9]에서 최고의 어휘 기반 단어 오류율은 15.0%다.
         다저자 필기 인식 작업의 경우 IAM 데이터베이스의 하위집합 c03에서 훈련에 440줄, 검정에 109줄을 사용하였다. 이 줄들은 글씨체가 확연히 다른 저자 여섯이서 작성하였다. 이 작업에서 LDA(12차원으로 경감)를 쓴 글자 오류율 14.2%는 이서체 모형(각 소문자에 이서체 6개)을 추가로 사용하여 13.3%로 더 크게 감소했다. 바이그램 언어 모형을 채택한 결과 오류율은 11.1%로 더욱 감소했다(검정 집합 perplexity는 12.0). 어휘 없는 단어 오류율은 39.0%로, 단어 421개(구두점 포함)를 포함한 어휘를 적용하여 오류율은 13.9%로 줄어들었는데 [11]에 나온 20.5%와 많이 비교된다.
         이 결과들에 고무하여 우리는 더 어려운 작업인 저자 독립 인식 실험을 수행했다. IAM 데이터베이스의 하위 집합 [a- f](저자 약 250명)을 입력 자료로 썼는데, 훈련에 4321줄(양식 [a-d]), 검정에 1097줄(양식 [e-f])을 사용했다. 베이스라인 시스템의 글자 오류율은 31.3%다. 저자 독립의 경우 이서체 모형은 다저자 실험에 비해 별다른 향상을 이루지 못했다. 오류율 31.3%는 글자당 이서체 3개를 써서 얻은 것이며 글자당 이서체 10개를 써서 실험했을 때 오류율(34.8%)과 인식 속도 모두 하락하였다. 하지만 오류율은 LDA 변환한 특징을 썼을 때 29.1%로 크게 감소했다. 언어 모형을 추가로 통합하여 글자 오류율은 22.2%로 더욱 개선되었다(검정 집합의 perplexity는 12.0). 이는 어휘를 쓰지 않았을 때 단어 오류율 60.6%와 대응된다.
  • 새싹교실/2011/Noname . . . . 9 matches
          * else if의 경우에는 if-else와 다음 if-else를 합쳐놓은것!!
          * switch의 경우 statement 에 break의 사용을 까먹지 맙시다.
          expr2조건 확인 -> 조건에 충족될때 statement실행 -> expr3 ->
          expr2조건 확인 -> 조건에 충족될때 statement실행 -> expr3 ->
          expr2조건 확인 -> 조건에 충족되지 않을겨우 for문을 빠져나옴.
          * expression이 충족될 경우 statement를 실행한다.
          * while문과 비슷하지만 do_while문은 statement를 무조건 한번은 출력한다.(그 뒤에 조건확인.)
          * 2차원 배열의 경우 행과 열로 나누어 생각하면 편하지만 사실은 1차원의 연속된 저장공간에 저장되는 배열이다.
  • 새싹교실/2012/설명회 . . . . 9 matches
          * 신입생인데 시작부터 '사랑하지 않으면 떠나라'고 하는 프레젠테이션이 참 수경선배다워서 인상이 깊었습니다 ;;;;; 그리고 이번에 보니까 컴공에 흥미를 가지고 있는 신입생들이 많아서 조금 긴장되는군요. 다들 그만큼 열심히 해 주지 않을까 하는 기대감도 들고요. 어쨌든 이번이 복학 + 새싹으로 불안감은 큰 만큼 사전에 준비를 잘 해 가야 하지 않을까 싶습니다. 그리고 시간이 허락한다면 다른 강사들이 수업하는 모습도 좀 보고 싶군요. 후후. - [서민관]
          * 선생님 지원자가 정말 많으네요. 사실 너무 많은게 아닐까 싶은 생각도 조금 듭니다. 만약 새싹교실을 성실히 진행한 반에 지원한다거나, 위키 사용을 잘 하고 있는지 한번씩 체크해보고 싶다거나, 모든 반이 함께 모여 공동의 활동을 진행하려 할때 약간 버거울수도 있지 않을까 걱정되는 면이 있어요. 반편성이나 회장님께서 각 반 선생님들께 공지해야 할 일이 있을때도 좀 힘들지 않을까 싶어 걱정이네요ㅜㅜ
          * 저도 얼핏 눈팅으로 보고 있는데 ZP 새싹게시판에서 말고는 강사가 누가 있는지 확인이 어렵네요. Netory, CLUG 회원도 있다면 ZP 새싹게시판에 있는 강사가 전부는 아닌것 같은데 맞나요? - [지원]
          * 회원수에 맞는 강사 수라고 생각되었습니다. 시간은 앞부분에 너무 치중되어지지 않을까 하는 걱정도 있었는데 괜찮은 시간분배였던거 같습니다. 강사여러분 모두 같이 수고해봅시다! - [이충현]
          * 확실히 옆 테이블의 목소리가 커지면 이쪽 테이블의 목소리가 잘 안 들리는 경우도 있어서 다음에 또 한다면 목소리 크기에 대한 대책을 세우지 않으면 안 될 것 같았습니다. 따로 통제를 하거나 하지 않으면 양쪽 테이블이 서로 목소리가 커지는 상황이 벌어져서 -_-;;; - [서민관]
          * 우리끼리 지식카페 해보지 않을래? 갑자기 생각났는데 재미있을 것 같아. 레츠랑은 좀 다른데 5-6명이 의자만 가지고 둘러앉아서 내가 배웠거나 깨달았거나 아는 것을 돌아가면서 3분정도 설명해주는거야. 어디서 본듯한 느낌이 드는듯..?
          * 월드카페->OST는 월드카페를 통해 어떤 말을 하고싶은지 찾고, OST에서 하고싶은 이야기를 자유롭게 할 수 있다면 좋지 않을까 하는 시도였습니다. 그런데 막상 진행해보니 월드카페에서 나온 이야기들이 OST로 이어지는 것은 아니라는 것을 느꼈습니다.
  • 이영호/64bit컴퓨터와그에따른공부방향 . . . . 9 matches
          * 32비트에서 64비트 컴퓨터로 바뀔 경우, 어플리케이션 개발자들의 경우 기존 개발 방식에서 많은 차이가 생길까요? 32비트에서 64비트 컴퓨터로의 전환이 개발자들의 페러다임의 전환을 의미할까요?
          └저도 C (배우게 된다면 Assembly도.ㅎ)를 좋아 합니다.ㅎ 무엇보다 빠른 연산속도와 하드웨어 제어(해본적은 없지만), 포인터를 통한 메모리 접근등 좋은 점이 많아요.^^* 그렇지만 예를 들어 1만 팩토리얼을 출력하는 프로그램을 작성하시오. 라고 문제가 주어졌을때, C로 짜면 한나절이지만 파이썬으로 작성하게 되면 5분도 안걸리게 됩니다. 물런 연산속도가 느리기는 하지만 말입니다.^^ 이런 점에서 봤을때, 속도가 중요하다거나 특화된 프로그램을 작성해야할 경우에는 C와 같은 언어가 좋지만 보편적으로 사용하는 워드프로세서라든지 기타 응용프로그램이나, 제작해야할 프로그램의 제작시간이 짧을 경우에는 상위레벨의 언어가 좋을거라고 봅니다.^^ 뭐 이렇게 말은해도.. 사실 서로의 장점을 그때그때 맞춰서 섞어쓰는게 가장 좋지 않을까요?ㅎ (게임을 만들때 하위레벨의 언어로 하드웨어를 직접 사용한다 하더라도, 다이렉트를 이용하지 각각의 그래픽 카드에 맞춰서 프로그램을 만들지 않는것과 비슷한것 같아요.^^) 이상 지나가는 행인1의 잡다한 생각이었습니다.^^* - [조현태]
         음. 아쉽게도 그런 용도로 Assembly를 평가 한게 아닙니다. 우수하고 못하다의 평가는 여기서도 나오는군요. 한가지만 파면 성공한다와 같은 맥락이랄까요... 저는 미래의 직장보다도 현재의 지식욕을 채우고 싶을 뿐입니다. 누구보다도 이것에 대해 많이 알고 싶고 또한 그렇게 되길 바랄뿐입니다. 과연 Java나 Python등을 공부하다보면 컴퓨터에 대한 가장 기초적인 지식들을 얻기 쉬울까요? 그렇기 때문에 Assembly에 대한 직접적인 접근을 하려고 하는 것입니다. 지식욕이 아니더래도 현직에 계시는 프로그래머분들께 컴퓨터에 대한 기초가 부족하고 프로그램만 짤 줄 아는 신참 직원들은 항상 한계에 다다르면 좌절한다라는 말을 들은적이 있습니다. 한번쯤은 생각해 볼 문제입니다. Assembly > C++을 평가한 것은 이런 맥락입니다. 컴퓨터에 대한 기초가 있느냐 없느냐. Assembly를 만지고 C++을 만진 사람의 경우는 모르겠지만 C++만 만지고 Assembly를 공부하지 않은 사람의 한계는 언젠가는 드러나게 되죠.
         그냥 시스템 프로그래머와 어플리케이션 프로그래머의 차이정도로만 생각하겠습니다. 언어 관련 논쟁과 다른 레이어간 논쟁에 대해서는 정말정말 재미없습니다. ^^ 의도하는 바도 아니고요. 단지, '시스템 프로그래머' 컨텍스트가 붙지 않았을 경우에는 다른 사람들에게는 좀 갸우뚱할 상황이여서 쓴 것일 뿐입니다. (그렇다고 시스템에 대한 이해의 중요성을 무시하려는것은 당연히 절대로 아니고요.)
         "종국에 C++과 같은 현재 패러다임을 따르는 사람들은 결코 나를 넘지 못하리니..."라는 말이 참이 되는 시점이 있다면 "나 역시 그들을 넘지 못하리니."도 참이 되진 않을까 반문해 보세요. 그리고 만에 하나 그렇게 된다면 거기에 만족할 수 있을까 생각해 보세요. 너무 이른 걱정이려나요? (전문성은 분야를 넘어서까지 적용되지는 않는다는 것이 최근 인지과학이 밝혀낸 사실입니다. 반드시 체스 전문가가 바둑을 특별히 잘두거나, 바둑 전문가가 체스를 뛰어나게 잘두거나 하지는 않습니다. 체스 고수가 특별히 IQ가 높고 암기력이 뛰어나거나 하지도 않고요. 한가지를 잘해서 두루 잘하기는 무척 어렵습니다)
          '' '특정언어를 공부한다'에는 두가지 의미가 같이 포함되어서 그런 것 같습니다. 즉, 언어 자체를 공부하는 것과 해당 언어가 쓰이는 분야(시스템, 웹, 컨커런트 등)를 공부하는 것. 아마 영호군의 경우 강조하려는 것은 시스템 레벨에의 지식에 대한 공부일 것이므로, '알고리즘/자료구조 대신 특정 프로그램언어를 공부한다'는 기우가 아닐까 생각. (물론, 하려는 이야기는 이해했음..~)--[1002]''
  • 정모/2012.2.3 . . . . 9 matches
          * 최소한의 정해진 진행방식은 강사 한명(혹은 두명)이 새싹 한 반(2명~6명)을 가르치게 되고, ZP정모 시간을 빌려 두어번 모든 새싹들이 모여서 강의나 골든벨(가칭)등을 하는 형태가 될 것 같습니다. 학기 중 시간이 빠듯해 매주 가르치는게 힘들거 같다고 하시는분은 "두명이 함께 강사신청 신청"해도 되며, 자기가 가르쳐줄 수 있는 것과 다른 강사가 가르쳐줄 수 있는게 현저히 달라 둘 같이 한 반을 가르치는게 좋겠다고 생각하는 분들도 함께 신청해도 됩니다. 또, 혼자서 신청했으나 학기가 시작되자 바빠져 곤란한 경우에도 추후에 합반을 할 수도 있으니, 많은 참여 부탁드려요~
          * 제가 목이아파 목소리가 작았다보니 다시한번 말해달라는 경우가 몇번 있었더군요. 음.. 오늘(금요일) 생긴 고민중에 하나는 대부분의 결정을 제(혹은 순의형이랑)가 하게 될텐데, 참 어떤게 좋을지 답도 명확해보이지 않고, 그렇다고 적당히 정하기도 어려운, 그런 상황인거 같아요ㅡ 좀 생각을 해 봐야 될거 같네요. - [김태진]
          * 조직이나 팀을 운영하는 데에 답이 존재하는 경우는 많지 않을 겁니다. 부회장님과 함께 ZeroPage를 이끌어 가는데에 다른 경험이나 시각이 필요하다는 생각이 든다면 도움을 요청하는데 주저하지 마세요. 1년 목표나 가치를 세워둔다면 자잘한 결정에 대한 비용을 줄일 수 있을겁니다. 자신이 어떤 타입의 리더인지를 파악하고 주위에 단점을 보완해줄 사람들을 두세요. 그래도 뭐 하나 하려면 머리 뽀개집니다ㅋㅋ 때로는 반대를 무릅쓰고 밀어부치는 것도 필요할거에요. 참고로 남을 설득할 때에는 처음부터 여러명을 설득하기 보다 한두명씩 자신의 편으로 끌어들이면 반발이 크지 않아요(divide and conquer). 끝으로 가장 중요한 것은 책임입니다. 모든 책임은 1차적으로 회장에게 있는겁니다. 자기가 직접적으로 한 행동이 아니라고 남에게 미루면 안돼요. 사람들의 신뢰를 잃게됩니다. 임원직을 후배님들께 물려드리자니 걱정이 많이 되네요.. 그치만 언제까지 ZP에 있을 수는 없으니ㅋㅋㅋ 화이팅!! 잘하려고 하지 말고 할 수 있는것을 하세요. 안못난 선배 물러갑니다. - [서지혜]
          * 새싹 교실도 그렇고 앞으로 결정해야 할 모든 사항에 있어 정답은 없습니다. 각각의 선택지에 장단점이 있죠. 작년같은 경우 [:ZeroPage/임원/회의 회의]를 통해 한 해의 목표를 정하고 그 목표를 이루기 위해 우리가 추구해야 할 가치는 무엇인가를 함께 공유한 뒤 그 가치에 맞는 선택지를 고르려고 애썼던 것 같습니다. 정모에 모인 회원들과 회의를 진행하는 것도 좋지만 사실 사람 수가 많아질수록 이래저래 말만 많아지고 목표는 흐려지는 경우가 많습니다. 던져놓으면 그렇게 말이 많은 주제라도 임원들끼리 결정했을땐 그냥 따르게 되는 경우도 많구요. 꼭 모든 회원의 의견이 필요하다 싶은 중대한 사항이 아니라면 임원들이 결정하는 쪽이 여러면에서 효과적이지 않을까 생각합니다.(시간을 효율적으로 쓴다는 점에서도 그렇고, 활동들이 일정한 방향성을 가지고 ZeroPage의 목표를 따라가느냐 하는 측면에 있어서도 그렇습니다.) 아무쪼록 올해는 올해의 목표를 정하고 그 목표에 충실한 활동들로 한 해를 채워나갈 수 있기 바랍니다. - [김수경]
          * 정모가 끝나고 깨닫는건 난 단추공장에 다니는 조가 되어있다는 것. 언제까지 단추만 누르고 살텐가. 개인적으로 이렇게 몸을 움직이는 ICE Breaking을 굉장히 좋아합니다. 뭘 하는지 모르게 시간이 가고 옆에 사람들의 웃긴 모습을 볼수 있으니 좋죠. 요즘 정모를 못왔지만 새 회장의 정모의 첫단추는 잘끼워진것 같습니다. 회장이 지금 맡은것이 많아서 좀 바쁘지만 빠릿빠릿하게 움직이는거 보면 올해도 잘 되겠죠. 새싹 스터디 같은 여러 의견이 분분한 경우는 과거의 기록을 듣고, 읽고 잘 조합해서 하나의 의견을 만들어서 강하게 진행하는걸 추천합니다. 의견을 듣고 있는것도 좋지만 언제까지 Melting Pot처럼 섞기만 하면 재미가 없죠.- [김준석]
  • 1002/책상정리 . . . . 8 matches
         이런 Approach 를 하는 때는 평소 공부나 프로그래밍 작업을 하는 곳이 학교, 회사 인 경우이다. 일은 일터에서, 쉬는건 집에서; 라는 접근방법이다. 이 경우 집에서는 절대로 일을 안한다는 전제하에, 밖으로 들고다니기 쉬운 것들이 가장 눈에 띄기 쉬워야 한다. 그리고 책상에서 '아 공부하고 싶다' 또는 '아 작업하고 싶다' 라는 생각이 들게끔 하면 안된다;
         간단한 방법 : 책상 위에 책을 잔뜩 늘어놓는다. 단, 이 경우 위의 '밖으로 들고다니기 쉬운 것들이 가장 눈에 띄기 쉬워야 한다' 에 충실하지 못하므로, 가장 자주 들고다니는 책들을 책상에 늘어놓아야 한다. 이 경우 다른 대안책으로서, '자주들고다니는 책은 아에 가방속에 넣어놓는다' 라던지 또는 '책상을 없애고 책장 2개를 산다' 라는 Architecture 적인 접근이 필요할지도 모르겠다. -_-a
         이는 위의 경우와 반대가 된다. 위에서의 책상에 비해 '휘발성'을 띤다. 이 경우 책상 판 자체는 main memory 역할을 하게 되므로, 가급적 책상을 비우기 위한 전략을 짜되, 해당 자료에 대한 접근성이 좋아야 한다.
          * 압축방법의 도입 - 압축의 방법으로는 일반압축기법을 이용한 압축과 손실압축법이 있다. 그리고 공간의 Optimizing 을 생각해볼 수 있다. -_-a 전자의 경우 부피줄이기, 중자는 스크랩, 후자로는 공간활용법을 생각할 수 있다.
          * 주로 현재 작업중인 일에 촛점을 맞춘다. 이 경우 LRU 알고리즘을 궁리할 수 있다. 자신이 해당 자료를 다시 본지 몇일이 지났는가? 해당 자료들에 대해서 count 를 세보자. 그리하여 가장 자주 이용하는 책들을 가장 꺼내기 쉬운 위치에 놓자.
  • 3rdPCinCAUCSE/ProblemA . . . . 8 matches
         왼쪽그림에서와 같이 같은 색의 바둑알이 연속으로 다섯 알이 놓이면 그 색이 이기게 된다. 여기서 연속이란 가로, 세로 또는 대각선 방향 모두를 뜻한다. 즉, 위의 그림은 검은색이 이긴 경우이다. 하지만, 여섯 알 이상이 연속으로 놓인 경우에는 이긴 것이 아니다.
         입력으로 바둑판의 어떤 상태가 주어졌을 때, 검은색이 이겼는지, 흰색이 이겼는지 또는 아직 승부가 결정되지 않았는지를 판단하는 프로그램을 작성하시오. 단, 검은색과 흰색이 동시에 이기거나 검은색 또는 흰색이 두 군데 이상에서 동시에 이기는 경우는 입력으로 들어오지 않는다.
         출력은 표준 출력이다. 출력은 T줄로 이뤄진다. 각 테스트 케이스에 대해서 검은색이 이겼을 경우에는 1을, 흰색이 이겼을 경우에는 2를, 아직 승부가 결정되지 않았을 경우에는 0을 출력한다. 그 다음에 검은색 또는 흰색이 이겼을 경우에는, 연속된 다섯 개의 바둑알 중에서 가장 왼쪽에 있는 바둑알 (연속된 다섯 개의 바둑알이 세로로 놓인 경우, 그 중 가장 위에 있는 것)의 가로줄 번호와 세로줄 번호를 순서대로 출력한다. 각 숫자 사이에는 빈칸을 둔다. T 개의 테스트 케이스를 모두 맞혀야 이 문제를 맞힌 것이다.
  • AcceleratedC++/Chapter9 . . . . 8 matches
          '''다음은 각기 동일한 표현식을 나타낸 2가지의 경우이다.'''
          헤더파일은 단지 컴파일러가 컴파일을 할때 이런 함수가 존재한다고 가정만 하고, 실제로 그 함수의 코드가 존재하는 것을 확인 할 수 잇는 것은 모든 관련 오브젝트 파일을 링크한뒤에 호출할때 없다는 것을 확인할 수 밖엔 없다.'''
          * 내장 타입 객체인 경우 값지정 초기화시에는 0으로 디폴트 초기화 시에는 정의되지 않은 값으로 세팅된다.
          * 생성자를 갖지 않는 타입인 경우. 객체를 어떤 식으로 초기화했는 가에 따라서 값지정, 디폴트 초기화를 재귀적으로 행함.
          현재 Student_info 형은 3번째의 경우에 해당하며, 현재 제공되는 멤버함수로는 문제가 생길 일이 없지만, 후에 이 클래스에 기능을 추가할 경우 문제가 발생할 가능성이 존재하므로 생성자를 만들어 주는 것이 좋다.
         Student_info::Student_info():midterm(0). final(0) {} // n, homework 의 경우 STL에서 제공되는 디폴트 생성자가 재귀적으로 호출
         using std::domain_error; using std::endl;
          } catch (domain_error e) {
  • CCNA/2013스터디 . . . . 8 matches
          * 복수의 네트워크 장비나 호스트가 동일한 미디어에 연결되어 있어 두 대의 호스트가 동시에 데이터를 전송할 경우 콜리전이 일어나는 범위
          - 레이트 콜리전(Late Collision) : 네트워크가 너무 커서 일정 시간 내에 잼이 전체 충돌 영역에 전송이 안 되는 경우.
          - ex) 이더넷의 경우 100M 정도가 네트워크 기준 거리인데 200M 정도로 이더넷 네트워크를 구성했을 경우 잼이 기준 시간 내에 전달이 안 될 수 있다.
          - 런트(Runt) : CRC는 맞는데 프레임의 길이가 64바이트(이더넷의 프레임의 최소 값) 보다 작은 경우.
          - 재버(Jabber) : CRC는 맞는데 프레임의 길이가 1518바이트(이더넷의 프레임의 최대 값) 보다 큰 경우
          * 동영상 중간중간에 일부 설명은 책에 나와 있으니 책을 보라고 하고 넘어가는 경우가 있었음. 책을 보지 않으면 이해하기 어려울 수도 있을 것 같음.
          * ISDN 동작확인 (터미널 명령어와 명령어에 따라 화면에 출력되는 정보들)
  • CVS . . . . 8 matches
         현재 ZeroPage 의 경우 CVSROOT 는 /home/CVS 이므로 viewcvs.conf 의 경우 다음과 같이 설정되어있다. (여기서 Development 는 일종의 이름. 여러개의 root 존재시에는 ','로 구분한다.
          * cvs에 접속이 되지 않을
          * telnet cvs_server 2401(기본포트) 로 접속 여부를 확인할 수 있다.
          * permission denied가 발생할 경우
          * 원인: 어떠한 이유에 의해, cvs를 실행하는 환경이 cvs 사용자와 다를 경우 혹은 권한이 없을 경우 발생한다.
         This problem is quite common apparently... <the problem>snip > I've been trying to use CVS with the win-cvs client without much > success. I managed to import a module but when I try to do a > checkout I get the following error message: > > cvs checkout chargT > > cvs server: cannot open /root/.cvsignore: Permission denied > > cvs [server aborted]: can't chdir(/root): Permission denied > > I'm using the cvs supplied with RedHat 6.1 - cvs 1.10.6 /snip</the> ---------
         Apparently, the problem is actually with Linux - daemons invoked through inetd should not strictly have any associated environment. In Linux they get one, and in the error case, it is getting some phoney root environment.
         돈이 남아 도는 프로젝트 경우 {{{~cpp ClearCase}}}를 추천하고, 오픈 소스는 돈안드는 CVS,SubVersion 을 추천하고, 게임업체들은 적절한 가격과 성능인 AlianBrain을 추천한다. Visual SourceSafe는 쓰지 말라, MS와 함께 개발한 적이 있는데 MS내에서도 자체 버전관리 툴을 이용한다.
  • DoubleBuffering . . . . 8 matches
          나중에 다시 할때 도움이 되지 않을까라는 생각--;
         화면 전체를 한꺼번에 렌더링 한 다음 버퍼를 바꿔주는 방식을 이야기하는 것 보면 아마 Page Fliping 을 이야기하시는듯. 단, 이것은 GDI 로는 불가능하지 않을까요? ^^ DC 핸들을 우리가 직접 조작할 수는 없는 것이고.. 말 그대로, 버퍼를 바꾼다는 것은 화면에 표시해 주는 메모리를 가리키는 포인터의 값을 바꾸는 거니까. Page Fliping 은 DOS나 DX에서는 가능할지 몰라도 GDI 에서는 불가능한 방법일것이라는 개인적 생각. (DC에 Select 되어있는 Bitmap 을 다시 셋팅해주는 방법은 어떨까. 한번도 안해봤지만. --;) [[BR]]
         그리고, 전체 그리기 관련 루틴의 경우는 애매한데, 왜냐하면 저렇게 object 별로 그리기 루틴이 있는 경우 사람들 실수하는 것이.. 각각의 Draw에 더블버퍼링하고 또 메인 루틴부분에 더블버퍼링을 중복하는 경우가 있어서리.. (뭐. 요새는 하드웨어가 빨라서 별 속도 저하 없긴 한것 같지만.) 개인적으로는 각각의 Draw부분에는 일반적인 Blt. 그리고 Main 부분에 더블버퍼링 한번이 맞지 않을까 하는. 뭐.. 그냥 생각나서 주저리주저리. --; [[BR]]
         ["snowflower"] : 음.. 나의 경우엔.. 화면 전체를 BufferDC에 그려서 나중에 그걸 DC로 옮겼는데... 좀 틀린걸까? [[BR]]
         ["데기"] : 보통의 경우는 선호가 하는 방법으로 하지. 렌더링되는 과정이 전혀 안 보이니까... [[BR]]
  • Gof/FactoryMethod . . . . 8 matches
          Ducument에제에서 Document클래스는 factory method에 해당하는, 자료를 열람하기 위한 기본 파일 다이얼로그를 생성하는 CreateFileDialog이 호출을 정의할수 있다. 그리고 Document sub클래스는 이러한 factory method를 오버 라이딩해서 만들고자 하는 application에 특화된 파일 다이얼로그를 정의할수 있다. 이러한 경우에 factory method는 추상적이지 않다. 하지만 올바른 기본 구현을 제공한다.
          2. ''클래스 상속 관게에 수평적인(병렬적인) 연결 제공''(''Connects parallel class hierarchies.'') 여태까지 factory method는 오직 Creator에서만 불리는걸 생각해 왔다. 그렇지만 이번에는 그러한 경우를 따지는 것이 아니다.; 클라이언트는 수평적(병렬적)인 클래스간 상속 관계에서 factory method의 유용함을 찾을수 있다.
          병렬 클래스 상속은 클래스가 어떠한 문제의 책임에 관해서 다른 클래스로 분리하고, 책임을 위임하는 결과를 초례한다. 조정할수 있는 그림 도형(graphical figures)들에 관해서 생각해 보자.;그것은 마우스에 의하여 뻗을수 있고, 옮겨지고, 회정도 한다. 그러한 상호작용에 대한 구현은 언제나 쉬운것만은 아니다. 그것은 자주 늘어나는 해당 도형의 상태 정보의 보관과 업데이트를 요구한다. 그래서 이런 정보는 상호 작용하는, 객체에다가 보관 할수만은 없다. 게다가 서로다른 객체의 경우 서로다른 상태의 정보를 보관해야 할텐데 말이다. 예를들자면, text 모양이 바뀌면 그것의 공백을 변화시키지만, Line 모양을 늘릴때는 끝점의 이동으로 모양을 바꿀수 있다.
          1. 두가지의 커다란 변수. Factory Method 패턴에서 두가지의 중요한 변수는 '''첫번째''' Creator 클래스가 가상 클래스이고, 그것의 선언을 하지만 구현이 안될때의 경이 '''두번째'''로 Creator가 concrete 클래스이고, factor method를 위한 기본 구현을 제공해야 하는 경우. 기본 구현이 정의되어 있는 가상 클래스를 가지는건 가능하지만 이건 일반적이지 못하다.
          '''첫번째''' 경우는 코드가 구현된 sub클래스를 요구한다. 왜냐하면, 적당한 기본 구현 사항이 없기때문이다. 예상할수 없는 클래스에 관한 코드를 구현한다는 것은 딜레마이다. '''두번째'''경우에는 유연성을 위해서 concrete Creator가 factory method 먼저 사용해야 하는 경우이다. 다음과 같은 규칙을 이야기 힌다."서로 분리된 수행 방법으로, 객체를 생성하라, 그렇게 해서 sub클래스들은 그들이 생성될수 있는 방법을 오버라이드(override)할수 있다." 이 규칙은 sub클래스의 디자이너들이 필요하다면, 그들 고유의 객체에 관련한 기능으로 sub클래스 단에게 바꿀수 있을음 의미한다.
          2. ''Parameterized factory methods''(그대로 쓴다.) Factory Method패턴에서 또 다른 변수라면 다양한 종류의 product를 사용할때 이다. factory method는 생성된 객체의 종류를 확인하는 인자를 가지고 있다. 모든 객체에 대하여 factory method는 아마 Product 인터페이스를 공유할 것이다. Document예제에서, Application은 아마도 다양한 종류의 Document를 지원해야 한다. 당신은 CreateDocument에게 document생성시 종류를 판별하는 인자 하나를 넘긴다.
  • MFCStudy_2001/진행상황 . . . . 8 matches
          * 2002. 1. 22 화요일 오후 2시 pc실로 모여주세요 : 역시나 마찬가지 진행 상황의 확인이고, 29일에 종칩니다.
          * 2002. 1. 22 화요일 오후 2시 : 역시나 마찬가지 진행 상황의 확인이고, 29일에 종칩니다. --상민
          *1월 10일 - 인공지능 또 다시 보강 - 3을 막을경우에 3,4가 되지 않게 막기(띈 경우 붙은 경우 모두) 앞으로 할일
          * 띈 3 이나 띈 4 일 경우 공격가능
          * 1월 21일 - 제가 짠 오목 인공지능이 사람을 이길때 느끼는 희열은 정말 말로 표현할 수 없을정도. 너무 기쁘져.. 특히 요사이 인공지능이 좀 좋아져서 이기는 경우가 많아져서 기쁨을 느끼는 경우도 더 많아져서 살맛남.
  • MagicSquare/은지 . . . . 8 matches
          if (row == 0) //벽에 부딪칠 경우
          if (col == size+1) //벽에 부딪칠 경우
          if (!board[row][col]) //자리가 비어있을 경우
          else //자리에 다른 숫자가 있을 경우
          if (row == 0) //벽에 부딪칠 경우
          if (col == size) //벽에 부딪칠 경우
          if ( row == size && col == 1)//좌표가 왼쪽 맨 아래인 경우
          else //그 밖의 경우
  • OurMajorLangIsCAndCPlusPlus/ctype.h . . . . 8 matches
         || int isxdigit(int c) || 16진수 를 표한할 수 있는 문자인지 확인한다. 0-9 a-f A-F ||
         || int ispunct(int c) || 알파벳문자 혹은 공백문자가 아닌 출력가능한 문자인지 확인한다. ||
         || int iswalpha(wint_t) || Uncode 인지 확인 (한글 등) ||
         || int iswxdigit(wint_t) || 16진수 를 표한할 수 있는 문자인지 확인한다. ||
         || int iswpunct(wint_t) || 알파벳문자 혹은 공백문자가 아닌 출력가능한 문자인지 확인한다.||
         || int isleadbyte(int) || 주어진 문자가 Uncode인지 확인(alpha와 동일) ||
         || int iscsymf(int) || 숫자 확인. ||
         || int iscsym(int) || 영문 확인. ||
  • PC실관리수칙 . . . . 8 matches
         4. 대청소는 필요하다고 판단되는 시점에 진행하며, 모든 컴퓨터의 동작여부를 확인하고 바닥 청소까지 병행한다.
          4. 특정 사람이 자발적으로 많이 참여한 경우, 월말에 소정의 선물(책 등)이 지급될 수 있다.
         1. 프린트 토너가 떨어진 경우 학과사무실에서 교환받을 수 있다.
          1. 토너가 떨어진 것의 기준은 인쇄 시 중간 부분이 제대로 출력되지 않는 시점부터를 말하며, 흔들어주면 잘 작동하는 경우도 있으나 곧 잉크가 소진되므로 이 경우 개인의 판단하에 교환하도록 한다.
         2. 프린트가 단순히 작동하지 않는 경우 PC 재부팅과 프린트 재부팅이 추천된다.
          1. 이후에도 동작하지 않는 경우 프린터를 컴퓨터와 분리하였다가 다시 연결해보도록 한다.
         3. 인쇄물이 남아있어 프린터를 사용하지 못하는 경우, 삭제되지 않으면 프린트를 끄고 몇초 후 다시 켜보는 것을 추천한다. 이후에도 차도가 없다면, 2번 프로세스를 따라가는 것이 좋다.
  • PragmaticVersionControlWithCVS/WhatIsVersionControl . . . . 8 matches
         개발 중인 프로젝트의 모든 버전이 저장되는 장소이다. 파일 시스템, DB일수도 있으며, 어떤 경우에는 2가지를 같이 사용하기도 한다.
         || 자동으로 생성되는 잔여파일의 경우 굳이이를 관리할 필요는 없다. 대신에 특수한 이유(컴파일 타임. 라이센스)로 필요한 경우에는 관리를 하는 경우도 있다 ||
         CVS가 각기의 파일에 할당하는 버전의 번호는 그 파일의 버전일뿐 전체 프로젝트의 버전일 수는 없다. ''(잡담:물론 따로 기능이 있지 않을까? -_-;)''
         이 경우 PreRelease2를 불러들이게 되면 상기의 버전의 파일들이 불러들여지게 된다. 태그는 프로젝트의 진행에 있어서 중요한 일이 발생한 시점을 기록하는 것으로 사용되는 것도 가능하다.
         이 경우 브랜치에서 수정된 사항이 mainline상에도 반영되어야할 필요가 있을때 이를 병합의 과정을 통해서 하는 것이 가능하다.
         상기와 같은 식으로 소스를 수정한뒤 fix01, fix02를 순차적으로 체크인하면 fix01에 의해서 저장소에 있는 파일이 갱신되었기 때문에 fix02가 체크인 되는 시점에서 충돌이 일어나게 된다. 이경우 CVS는 fix02의 소스에서 fix01에 반영된 3번째 줄의 변경내용을 병합하여 로컬 작업 공간에 반영하고 체크인하게된다.
  • ProjectGaia/계획설계 . . . . 8 matches
          또한 슬롯을 추가할 경우에 추가할 위치를 포인터로써 바로 접근 할 수 있을것임.
          1. 어떤 레코드를 삽입/삭제/검색을 하고자 포인터를 찾고자 할 경우에..
          * 삽입의 경우.. {{{~cpp FreeSpace>Slot_Size+Record_Size}}}와 비교후에 수행
          1. 화일생성 - 레코드 10000개, unsorted 화일 생성 (생성 여부 확인을 위해 화면 출력 가능하도록 구현)
          unsorted 레코드를 sort하면서 page 단위 메모리에 적재를 하되, 이때 정렬 대상 레코드를 메모리에 모두 올려서 정렬하지 않고, memory size 10인 자연선택(교재155p)을 이용함. 여기서 memory size 10이라는 것은 10개의 레코드를 올릴 수 있는 공간을 말 하고, 가변 길이 레코드일 경우 실제 사이즈는 변할 수 있다. 자연선택 이후, m-원 다단계 합병(교재166p).
          정렬된 레코드를 page(4KB) 단위로 입력, page에는 header와 slot이 차지하는 공간을 제외한 크기만큼 레코드를 저장할 수 있다. 레코드를 page에 입력할 때 비신장 가변길이 저장 방법을 사용, 입력될 레코드가 page의 남은 공간보다 클 경우 다음 page에 입력된다.
          이때 유의 사항으로는 새로 들어가는 레코드의 길이가 기존 레코드 보다 길 경우 공간이 부족하다는 것.
          삽입, 삭제가 빈번하게 이루어질 경우, null flag에 의해 저장공간이 불필요하게 낭비될 것으로 예상됨.
  • ProjectZephyrus/Afterwords . . . . 8 matches
          1. 각각의 경우들에 대해서 그 원인을 파악하고, 대안을 생각해보았다. (시간이 조금 많이 흘러서 모든 경우들에 대한 대안은 내지 못하였다. 하지만, 이는 계속 해 볼 일이다. 그당시 잘 했던 점은 더 잘하기 위해, 잘못했던 점은 다시 실수하지 않기 위해)
          * PP를 너무 지나치게 했다 - 서버팀의 경우 후반으로 가면서 '이건 차라리 각자 프로그래밍하는게 더 효율적이였을텐데' 하는 생각이 들었다.
          * 초기 SPEC이 너무 추상적이였다. - 프로젝트 중간에 합류한 상규의 경우 프로젝트의 스펙을 이해하지 못했고, 완성된 Output 에 대한 그림을 그리지 못했다.
         === 잘된 경우에 대한 원인 분석 ===
          - PairProgramming 전에 진행 전략을 세웠다. (5분 PP 라던지, PP 순서시 간단한 Modeling 뒤, Sequence Diagram 등을 그리고 난 뒤 진행을 한다던지, 후배들에게 프로그래밍이 완성되었을 경우에 어떠어떠하게 돌아갈 것이다 라고 미리 그 결과를 생각해보게끔 유도)
         === 잘못된 경우에 대한 원인 분석 ===
          - DE를 공부하여 확인한다.
  • PyUnit . . . . 8 matches
         === 간단한 testcase 의 제작. 'failure', 'error' ===
         테스팅을 하기 위해 Python의 assert 구문을 사용한다. testcase가 실행될 때 assertion을 실행하면 AssertionError 가 일어나고, testing framework는 이 testcase를 'failure' 했다고 정의할 것이다. 'assert' 를 명시적으로 써놓지 않은 부분에서의 예외가 발생한 것들은 testing framework 에서는 'errors'로 간주한다.
         만일 setUp 메소드가 테스트중 예외를 발생할 경우 framework는 이 테스트에 error를 가지고 있다고 생각할 것이다. 그리고 runTest 메소드가 실행되지 않을 것이다.
         종종, 많은 작은 test case들이 같은 fixture를 사용하게 될 것이다. 이러한 경우, 우리는 DefaultWidgetSizeTestCase 같은 많은 작은 one-method class 안에 SimpleWidgetTestCase를 서브클래싱하게 된다. 이건 시간낭비이고,.. --a PyUnit는 더 단순한 메커니즘을 제공한다.
         test 코드는 각각의 test조건에 맞춰 문제발생시 fail 등을 발생시킨다.
          except ValueError:
          fail("expected a ValueError")
  • Ruby/2011년스터디/세미나 . . . . 8 matches
          * "우아한" 언어인 루비를 다운받아 irb를 사용해 실습을 해보았다. 처음에 irb를 눌렀을 때, 무슨 dll파일이 없어서 실행이 안된다는 팝업창이 떴는데 확인 누르니까 알아서 잘 켜졌다. Ctrl+C를 눌렀더니 끌지 말지 여부가 떴는데 N을 눌러도 꺼졌다. irb보다는 넷빈즈를 이용하는게 좋다는 말이 와닿았다. 1+2를 치면 알아서 3이 나오는 것과 리턴 값이 항상 표시되는 것이 신기했다(없을 경우도 =>nil 로!). 루비의 블록 넘기기는 #define이랑 비슷한 느낌이 들었다. 새로운 언어임에도 쉽게 익힐 수 있어 좋았다. 하지만, 페어로 하는 만큼 실습 시간도 반감되지 않았을까 죄송스러웠다. 세미나 공지가 뜨면 노트북을 가져가도록 해야겠다. - [강소현]
          * 아.. 세미나가 끝나니까 할말이 생각나네요..ㅠㅠ 루비의 블록 넘기기는 사실 블록이 yield구문에게 전달되는 것이 아니라 yield를 만나면 함수의 호출부로 컨트롤이 이동해 블록이 있는지 확인하고 실행합니다. 책에서는 co-routine 이라고 이해하면 된다는 설명이 있어요~ 블록이 전달되는게 아니라 컨트롤 플로우가 왔다갔다!! 스위치 태스킹처럼요. 세미나때 설명을 잘 해드렸어야 했는데 죄송천만번입니다 - [서지혜]
          * ''의도가 명확하다는 것''이 무엇인지 설명하는 것보다 의도가 명확하지 않은 상황을 제시하는 게 이해하기 좋을 것 같으니 하나 예를 들어볼게. RubyLanguage에서 괄호를 쓰지 않아도 되는 것은 if 구문에 대해서만 그런 것은 아니야. 함수의 경우도 마찬가지지. 만약 내가 매개변수 a와 b를 받아 그 둘을 더해 반환해주는 함수 add(a, b)를 만들었다 치자. 이 메서드를 다음과 같이 이용할 수 있겠지.
         }}} 윗줄 아랫줄 모두 문제 없이 실행되지. 이 경우는 의도가 명확한 경우야. 그런데 이 add 메서드를 호출해서 3, 4, 7을 더한 값을 알고 싶다면
         }}} 그런데 위 코드는 대체 어떤 것이 처음 나온 add 메서드에게 넘겨주는 매개변수인지 명확하지 않지? 이런 경우는 의도가 불명확한 경우라 반드시 괄호를 사용해서 코드를 작성해야해. - [김수경]
  • SmallTalk/강좌FromHitel/강의3 . . . . 8 matches
         터넷에 연결되어있는지 확인하고 이어서 이 단추를 누르면 Object Arts사의
         * First Name: 여러분의 이름을 넣습니다. 저의 경우는 ChanHong Kim으로 표
         * Last Name: 여러분의 성씨를 넣습니다. 저의 경우에는 Kim이겠지요?
         * Stree Address: 우리의 경우에는 시/군, 구/읍면, 동, 번지로 주소를 쓰지
          만 외국의 경우는 거꾸로 입니다. Street Address에는 여러분의 동 이름
          과 번지수를 씁니다. 저의 경우라면 2288-3, DaeMyung 3 Dong, Nam-Gu
         * State: 미국의 경우는 주를 입력합니다만, 우리는 비워둡니다.
         두어야 하는 이유입니다. 그래야만 만일의 경우에 발생하는 문제를 예방할
  • SummationOfFourPrimes/1002 . . . . 8 matches
         대부분의 시간은 소수테이블을 작성하는 부분이 된다. 그래서 이 부분에 대해서 Seminar:PrimeNumber 를 참고, 최적화된 알고리즘으로 수정하였다. 그리고 역시 psyco 를 이용하였다. 그 결과, 10000000 기준 10초. 기존 알고리즘의 경우 50000번 기준 24초 이상.
         여기서 selectionFour 의 경우는 percall 에 걸리는 시간은 적다. 하지만, call 횟수 자체가 470988 번으로 많다. 이 부분에 대해서 일종의 inlining 을 하였다.
         10000000 건에 대해서는 7.49 초 기록 (profiler 를 이용할 경우 속도저하가 있기 때문에 profiler 를 끄고 psyco 만으로 실행)
         비록 inlining 을 시켰지만 여전한 것은 selectionFour 부분이다. selectionFour 가 실행되는 경우의 최악의 경우는 (n 까지의 소수갯수)^4 가 된다. 이를 좀 더 smart 하게 할 방법이 없을까.
          * PrimeNumber 의 최적화에 대해서. 기존에 있는 알고리즘이 아닌, 직접 최적화를 시도해보는 것으로 더 많은 것을 학습할 수 있으리라. 이번의 경우는 2시간 작업으로 계획을 잡았던 관계로.
          * 이러한 문제의 경우 특정 알고리즘의 아주 최적화 된 결과물이 답이기 보다는, 무언가 다른 차원에서 봤을때 너무나 빨리 답이 나오게 되는 경우일것이라 추측. 전혀 다른 방법의 어프로치도 생각해보고 싶다.
  • TermProject/재니 . . . . 8 matches
          grade(int), prt_select(), prt_all(), error();
          else error(); // 잘못 입력하였을 경우 에러메시지를 출력하는 함수 호출
          system("pause"); // 실행 결과를 확인하기 위해 실행을 잠시 멈춤
         void sub_menu() // 1, 2번 메뉴의 경우 서브 메뉴를 입력받아 선택된 메뉴를 출력하는 함수
          error(); // 잘못 입력하였을 경우 에러메시지를 출력하는 함수 호출
         void prt_select() // 1, 2번 메뉴의 경우 서브 메뉴에 따라 화면에 결과를 출력함
          if (select == 4) // 선택된 메뉴가 4번일 경우
         void prt_all() // 3, 4번 메뉴를 선택했을 경우 공동으로 사용하는 출력 함수
         void error() // 메뉴를 잘못 입력하였을 경우 에러 메시지를 출력하는 함수
  • ZeroPageServer/Mirroring . . . . 8 matches
          를 설치하여 사용한다. 그러면 우선, rsync 패키지가 설치되어 있는지를 확인해 본다...
          ⑥ read only : 클라이언트가 서버에서 데이터만 다운로드 하는 경우에는 이 옵션을 yes로 설
          no로 설정하지만 특별한 경우가 아니라면 yes로 설정한다.
          xinetd 를 정지함 : [ 확인 ]
          xinetd (을)를 시작합니다 : [ 확인 ]
          보가 나오는지를 확인한다. 만일 접속이 이뤄지지 않는다면 방화벽을 점검하거나
          /mirror/rh9hwp_backup 디렉토리로 데이터가 백업되고 있음을 확인할 수 있다.
          rsync 서버주소::를 실행하여 모듈명을 확인하여 원격 서버에 접속해 미러링되게 하면
  • 가독성 . . . . 8 matches
         가독성은 개인취향이라고 생각합니다. 제 경우는 C, C++에서 { 를 내리지 않는 경우보단 내리는 경우가 더 보기 편하고, JavaLanguage 에서는 내리지 않는게 더 편하답니다. 애초에 CodingConventions 이라는 것이 존재하는 것도 통일된 코딩규칙을 따르지 않고 개인취향의 코드를 만들어내다 보면 전체적으로 코드의 융통성이 결여되고 가독성또한 전체적으로 떨어지는 문제를 미연에 방지하기 위함이라고 생각합니다. 특히나 ExtremeProgramming 의 경우처럼 CollectiveOwnership 을 중요한 프랙티스 중의 하나로 규정한 방법론에서는 CodingConventions 과 같은 공동소유의 산출물에 대한 규칙이 더윽 중요하다고 생각됩니다. 요는, { 를 내리느냐 내리지 않느냐가 가독성이 높냐 낮냐를 결정짓는 것이 아니고 가독성이라는 하나의 평가요소의 가치는 개인에 따라 달라질 수 있다는 것입니다. - 임인택
          ''Python 과 같은 언어의 경우 {} 자체를 쓰지 않고 아에 들여쓰기로 블록를 표현합니다. 우리가 코드를 볼때 해당 블록 범위를 읽을때에는 { } 의 위치보다는 들여쓰기로 블록 범위를 파악하는 일이 더 많다는 점에 대해서도 생각해 볼 필요가 있을 것 같습니다. --[1002]''
         위에서 이야기한 것 중 터미널 화면에서의 작업시 세로라인의 범위가 좁은 경우 { } 가 가독성을 해칠수 있다는 의견이 있습니다. 재미있는 의견 같네요.
         그래서 추측을 했었는데, 자신이 쓰는 도구에 따라 같은 코드도 가독성에 영향을 받을 수 있겠다는 생각을 해봅니다. VI 등의 editor 들로 코드를 보는 분들이라면 아마 일반 문서처럼 주욱 있는 코드들이 navigation 하기 편합니다. (아마 jkl; 로 돌아다니거나 ctrl+n 으로 page 단위로 이동하시는 등) 이러한 경우 OO 코드를 분석하려면 이화일 저화일 에디터에 띄워야 하는 화일들이 많아지고, 이동하기 불편하게 됩니다. (물론 ctags 를 쓰는 사람들은 또 코드 분석법이 다르겠죠) 하지만 Eclipse 를 쓰는 사람이라면 코드 분석시 outliner 와 caller & callee 를 써서 코드를 분석하고 navigation 할 겁니다. 이런 분들의 경우 클래스들과 메소드들이 잘게 나누어져 있어도 차라리 메소드의 의미들이 잘 분리되어있는게 분석하기 좋죠.
  • 사람들이과제를해오지않는다 . . . . 8 matches
          * 두가지를 생각해 볼수 있다. 첫번째는 그 발표 과제가 그 사람에게 너무 벅찬것이었고 숙제도 그 사람의 수준에 맞지 않는 것이이서 못해올 수도 있다. 아니면 발표거리나 과제 거리가 그 사람에게 충분한 흥미, 동기 유발을 자아내지 못했을지도 모른다. 이는 과제를 내거나 숙제를 낸 측에서 잘못 판단한것이 문제가 된것이다. 두번째 경우는 그 사람이 그 발표를 하거나 과제를 하는것에 우선순위를 아주 낮게 두는 경우다. 그래서 발표 준비나 과제를 하는건 자신이 할거 다하고 시간 남으면 하거나, 귀찮아서 미루다 미루다 안하는 경우다. 내가 보기에는 첫번째 경우 두번째 경우 모두 우리 제로페이지에서 다반사로 일어났었다고 본다. 내 예를 들면 보통 무슨 책을 같이 공부 하자고 함께 공부하는 스터디는 끝까지 가거나 어느 정도까지 간 경우가 단 한번도 없었다. 내가 보기에는 책을 스터디 그룹 지어서 같이 공부하는건 상당히 어렵다고 본다. 아예 그러고 싶으면 스터디 그룹을 만들어서 우선 개별적으로 단시간안에 그 책을 한번 공부하고 나서 다 공부한 사람들끼리 그 책에 대한것들을 서로 물어보고 토론을 하고 하는게 좋을거 같은데 쉽지 않은 얘기다. 그런데 수동적으로 책을 공부하는 프로젝트가 아닌 프로젝트를 하는데 이러 이러한 책이 필요해서 그러한 책들을 필요한 부분들을 참고하면서 해나가가는 프로젝트는 제로페이지 내에서 중간에 해체 안되고 끝까지 간경우가 책 하나에 대한 스터디 보다는 훨씬더 많았던거 같다. 내가 보기에는 이 차이는 프로젝트, 스터디를 해 나갈때는 아주 명확한 목표가 있어야 한다고 본다. 장거리 자동차 여행을 가는데 목적지 없이, 지도없이 출발하는 경우는 없다. 프로젝트도 마찬가지로 어떤 결과물을 만든다거나, 어떤 수준(아주 구체적, 객관적인)에 도달한다는 목표가 있어야 한다고 본다. 그런데 어떤 수준은 좀 애매하기에 어떤 결과물을 목표로 잡고 스터디, 프로젝트를 하는게 좋겠다고 생각한다. - [상협]
  • 새싹교실/2012/AClass/4회차 . . . . 8 matches
         -원형 큐로 기본 큐와 마찬가지로 첫 번째 데이터가 추가되는 순간 큐의 처음과 끝부분이 그 데이터를 가리키게 된다. 처음을 F 끝부분을 가리키는 것을 R이라하면 꽉찬 경우나 텅빈경우에 F가 R의 한칸 앞을 가리키는 것은 같기 때문에 F,R의 위치만을 가지고 꽉 찬경우와 텅 빈 경우를 구분할 수 가 없다. 따라서 이와 같은 문제를 해결하는 방법은 많겠지만 그 중 하나는 배열을 꽉 채우지 않고 배열의 길이가 N이라면 N-1만큼만 채워 졌을 때 꽉 찬 것으로 간주하는 방법이다. 이렇게 하면 저장 공간 하나를 낭비하게 된다. 하지만 이로 인해서 문제 하나가 해결이 되는 셈이다.
         이 과제가 무슨 말인지 이해가 안되는 경우 반드시 저에게 물어보고, 과제를 해야합니다.
         이 과제가 무슨 말인지 이해가 안되는 경우 반드시 저에게 물어보고, 과제를 해야합니다.
         큐를 구현하는 가장 일반적인 방법은 스택과 마찬가지로 배열을 이용하는 방법이다. 그러나 단순배열로 할경우 배열의 크기가 지정되어 있는 상태에서 데이타가 계속 추가되게 되면 어느 시점에서 overflow 가 발생하게 됨으로 데이타가 배열의 크기를 초과하게 되면, 초과된 데이타는 0번째 배열로 들어가게 해야 한다. 이러한 구조가 환형구조와 같다고 해서 보통 환형큐(circular queue) 라고 한다
         o 이 과제가 무슨 말인지 이해가 안되는 경우 반드시 저에게 물어보고, 과제를 해야합니다.
  • 정모/2006.12.16 . . . . 8 matches
          * 창섭 - 이미 다른 집단을 볼 때에 문제가 되지 않을 것 같다.
          * 정현 - 실력차이와 기수는 무관한데 구지 기수를 매겨야 할 필요가 있는가. 괜히 기수를 매겨서 문제를 만들지 않을까?
          * 아영 - 꼭 예전에 기수를 썼다고 해서 지금 기수를 써야할 필요가 없지 않을까.
          * 창섭 - 세미나와 같은 이점은 4학년과 같은 경우에 적용이 되지 않기 때문에 다른 이점이 나왔으면 좋겠다.
          * 창섭 - 지금 현상은 특이현상이기 때문에 앞으로는 이렇게 되지 않을 것이다.
          * 창섭 - 회장이 지목을 할 경우에는 회장단의 책임이 떨어질 수 있다. 역활 분담을 명확히 해야 한다.
          * 석천 - 회장이 MT와 관련해서 하는 일이 많기 때문에 그정도는 보상이 될 수 있다. 단 회장이 지금처럼 하는일이 많을 경우.
          * 건영 - 규모가 작기 때문에 추천제가 필요하지 않을 것 같다.
  • 주민등록번호확인하기 . . . . 8 matches
         === 주민등록번호 확인하기 ===
          나머지가 10일경우 0으로 처리라고함
         || 정수민 || C || 1h? || [주민등록번호확인하기/정수민] ||
         || 조현태 || C/C++ || . || [주민등록번호확인하기/조현태] ||
         || 김태훈([zyint]) || C || 40분? || [주민등록번호확인하기/김태훈zyint] ||
         || 김영록 || C++ || 25 분; || [주민등록번호확인하기/김영록] ||
         || 문보창 || Java || . || [주민등록번호확인하기/문보창] ||
         || 허아영 || C++ || . || [주민등록번호확인하기/허아영] ||
  • 포커솔리테어평가 . . . . 8 matches
         1. 노 페어 : 아래 계급에 아무것도 해당되지 않을 경우 (예: AC, 3H, QS, JD, 7D)
         3. 투 페어 : 아래 계급 중 어떠한 것도 해당되지 않으며, 다른 숫자의원 페어 2개로 이루어진 경우(예 : @C, 3H, 4H, 2H, 4D)
         4. 트리플 : 아래 계급 중 어떠한 것도 해당되지 않으며, 동일한 숫자의 카드가 3장인 경우(예 : QS, KH, 2C, QD, QC)
         5. 스트레이트 : 아래 계급 중 어떠한 것도 해당되지 않으며, 5장의 카드의 숫자가 순차적으로 구성되는 경우. A(에이스)는 14나 1로 사용될 수 있다. 예를 들어, AC, 2H, 4D, 3H, 5S도 스트레이트 이며, JH, XD, QC, KD, AS도 스트레이트 이다.
         6. 플러시 : 아래 계급 중 어떠한 것도 해당되지 않으며, 5장의 카드가 모두 동일한 경우 (예:5D, AD, KD, 7D, QD)
         7. 풀하우스 : 아래 계급 중 어떠한 것도 해당되지 않으며, 원 페어와 다른 카드들로 트리플을 이루는 경우(예 : 3C, QS, QP, 3H, 3S)
         9. 스트레이트 플러시 : 5장으로 스트레이트와 플러시 모두 포하되는 경우
  • 프로그래머가지녀야할생각 . . . . 8 matches
         모든 ZP인들에게 미안하게 생각합니다. 갑자기 뚱딴지 같은 생각이 났습니다. 과연 ["programmer"]들이 항상 마음에 지니고 있어야 할 ["생각"]은 무엇일까요? 어떤 생각들을 항상 지니고 있어야 잘못된 행동(사고 포함)을 하지 않을 수 (혹은 하고 있다는 것을 깨달을 수 )있을까요? ["programmer"]들이 꼭 지니고 있어야 할 생각들이 무엇일까? 궁금합니다.
         학부시절 혼자하는 프로그래밍의 경우, 사소한 기능 하나를 추가하려다가 제풀에 지쳐서,
         전체 프로그램을 포기하는 경우가 생기곤 하죠..
         ''목적'' 이 무엇인가를 늘 기억했으면 합니다. 무엇을 목적으로 하는지 잊어버릴 경우
         부지런해야 하지는 않을까..(이건 생각에 안들어갈까요..ㅡ.ㅡ?)
          * 다들 인간으로써의 프로그래머를 두고 말씀하시는 것 같아 제 말이 뚱딴지처럼 들릴 것 같네요...^^;[[BR]]전 말이죠... 프로그래머는 컴퓨터를 사랑해야한다고 생각합니다. 정말 제가 생각해서 어이없는 말 같지만, 프로그래머는 컴퓨터에게 명령만 내리는 것이 아니라 컴퓨터와의 커뮤니티가 형성되어야 좋은 프로그램(인간에게가 아니라 컴에게)을 짤 수 있다고 생각합니다. 지극히 추상적이라서 반박의 여지가 많은 말이지만 그냥 그렇지 않을까 생각해봅니다. 컴퓨터에 미친 사람이라면 다음의 말에 공감을 할 지도 모르겠네요. [해커를 위한 파워핸드북]표지에 나오는 말입니다. ''''컴퓨터 속에서 흘러 다니던 비트가 내 혈관 속으로 옮겨와 흐르기 시작하고, 나는 컴퓨터와 함께 오르가즘을 느낀다.'''' --["창섭"]
          * 위엣 말이 컴퓨터 자체에 관한 기계적 이야기라면 인간적 이야기도 추가하고 싶어요. 프로그래머는 프로그램 이전에 인간을 먼저 생각해야 한다는 것이죠... 상민이 형이 줬던 V노트에 나온 말이 인상깊습니다. ''''크래커든 프로그래머든 둘다 시작은 해커를 꿈꾼 젊은이 였으며, 인격을 가진 사람이다. 악이 없이 선이 없듯이 크래커가 영원히 존재하지 않을수는 없을지라도 지금 당신의 열정과 땀으로 주어질 선택이 진정한 존경으로 돌아올수 있도록 유혹을 이겨낸 진짜 승자가 되어야 하지 않을까......'''' --["창섭"]
  • 프로그래밍잔치/둘째날후기 . . . . 8 matches
          * 팀별 정리 : ["프로그래밍잔치/Successor"], ["프로그래밍잔치/ErrorMessage"]
         한편, Error Message 팀은..
         Error Message 팀은 JuNe 의 도움에 따라 그날 한 일을 정리하는데 Activity Diagram 을 이용하는 방법에 대해 알게 되었다. 그리고 Activity Diagram 을 이용, 그날 한 일들을 정리해본다.
         Error Message 팀에서는 잘된점으로 문제 사이즈를 적절하게 잡은 점을 뽑았다. 잘못된 점으로는 사람들의 개개인 능력을 정확하게 고려하지 않고, MFC 를 고른점과 역시 Pair 에서의 문제점, 그리고 '팀 이름이 안좋았다' 라는 의견이 있었다. 그리고 대화가 잘 이루어지지 않았다는 점을 뽑았다.
          * 나역시 페어를 해본건 아주 간단한것이었긴 하지만, 그때의 느낌이라면 페어가 되는 조건에 대해서 좀 생각해봐야하겠지. Expert - Expert Expert - Novice의 단적인 예를 들자면 역시 Expert - Expert인 경우가 진행도 빠르고 페어도 효율적이겠지만 두번째의 경우 시간분배에 따라 해결하는 양도 틀리고 하지만 결국 시간이 느려지는건 사실 그러나 얻는것! 페어가 끝난후 Novice가 단지 처음의 수준에 머무르지는 않는다는 것이지. 내 느낌은 일단 그러네 ^^; 아 참고로 어중간한 사람끼리 만나면 진행은 잘되는데 머 잘되면 좋긴하지만 안되는 쪽으로도 잘 되는? 현상이 벌어질 가능성도 있다고 사료됨. (이 내용은 1002 군의 예전의 페어에 관한글을 참고함) - JihwanPark
          * 에.. 다들 소감을 쓰셨군요. 저도.. 느낀점은 많았지만. 혼자 뛰지말자... 라는 점이라던지... 나를 너무 믿지 말자.. 정도? ^_^;; 무슨 소리를 하는 겐지.. 어쨌든 영동이에겐 (약간은) 아쉬운 페어가 되었었지 않을까라는 생각만 드네요.. 남은 일은 게으르지 말고 고쳐나가는 것. 도망치지말고 맞서 싸우는 것.. 뿐이군요 ㅡ.ㅡ/ --선호
          * 왜 이 팀의 경우 Courage 할 사람이 없었을까. 옆의 팀에 비해서, 뭔가 일이 이루어질때 팀간에 환호성이라던지.. 적었다는 생각.
  • 프로그램내에서의주석 . . . . 8 matches
         자바 IDE들이 Source Folding 이 지원하거나 comment 와 관련한 기능을 지원한다면 해결될듯. JavaDoc 은 API군이나 Framework Library의 경우 MSDN의 역할을 해주니까. --석천
         자네의 경우는 주석이 자네의 생각과정이고, 그 다음은 코드를 읽는 사람의 관점인 건데, 프로그램을 이해하기 위해서 그 사람은 어떤 과정을 거칠까? 경험이 있는 사람이야 무엇을 해야 할 지 아니까 abstract 한 클래스 이름이나 메소드들 이름만 봐도 잘 이해를 하지만, 나는 다른 사람들이 실제 코드 구현부분도 읽기를 바랬거든. (소켓에서 Read 부분 관련 블럭킹 방지를 위한 스레드의 이용방법을 모르고, Swing tree 이용법 모르는 사람에겐 더더욱. 해당 부분에 대해선 Pair 중 설명을 하긴 했으니)
          하지만, "확실히 설명할때 {{{~cpp JavaDoc}}}뽑아서 그거가지고 설명하는게 편하긴 편하더라."라고 한말 풀어쓰는 건데, 만약 디자인 이해 후에 코드의 이해라면 {{{~cpp JavaDoc}}} 없고 소스만으로 이해는 너무 어렵다.(최소한 나에게는 그랬다.) 일단 코드 분석시 {{{~cpp JavaDoc}}}이 나올 정도라면, "긴장 완화"의 효과로 먹고 들어 간다. 그리고 우리가 코드를 읽는 시점은 jdk를 쓸때 {{{~cpp JavaDoc}}}을 보지 소스를 보지는 않는 것처럼, 해당 메소드가 library처럼 느껴지지 않을까? 그것이 메소드의 이름이나 필드의 이름만으로 완벽한 표현은 불가능하다고 생각한다. 완벽히 표현했다면 너무나 심한 세분화가 아닐까? 전에 정말 난해한 소스를 분석한 적이 있다. 그때도 가끔 보이는 실낱같은 주석들이 너무나 도움이 된것이 기억난다. 우리가 제출한 Report를 대학원 생들이 분석할때 역시 마찬가지 일것이다. 이건 궁극의 Refactoring문제가 아니다. 프로그래밍 언어가 그 셰익스피어 언어와 같았으면 하기도 하는 생각을 해본다. 생각의 언어를 프로그래밍 언어 대입할수만 있다면야.. --["상민"]
         내가 Comment 와 JavaDoc 둘을 비슷한 대상으로 두고 쓴게 잘못인듯 하다. 두개는 좀 구분할 필요가 있을 것 같다는 생각이 들어서다. 내부 코드 알고리즘 진행을 설명하기 위해서는 다는 주석을 comment로, 해당 구성 클래스들의 interface를 서술하는것을 JavaDoc으로 구분하려나. 이 경우라면 JavaDoc 과 Class Diagram 이 거의 비슷한 역할을 하겠지. (Class Diagram 이 그냥 Conceptual Model 정도라면 또 이야기가 달라지겠지만)
         그리고 계속 이야기 하다보니 주석(comment)과 {{{~cpp JavaDoc}}}을 나누어 설명하는 것이 올바른 생각인듯 하다. 그런 관점이라면 이번 코딩의 컨셉이 녹색글자 최소주의로 나갔다고 볼수 있다. 머리속으로는 특별히 둘을 나누지 않고 있었는데, 코딩 습관에서는 완전히 나누고 있었던거 같다. 녹색 글자를 쓰지 않을려고 발악(?)을 했으니.. 그래도 보이는 녹색 글자들 보면 죄의식이 이것이 object world에서 말하는 "프로그래머의 죄의식"에 해당하는 것이 아닐까. --["상민"]
         주석이 실행될 수 있는 코드가 아니기 때문에, 반드시 코드가 주석대로 수행된다고 볼 수는 없지만 없는것 보다는 낳은 경우도 많다. 코드 자체는 언어의 subset 이기 때문에 아무리 ''코드가 이야기한다(code tells)''라 할지라도 우리가 쓰는 언어의 이해도에 미치기가 어렵다. 이는 마치, 어떤 일을 함에 있어서 메뉴얼이 존재함에도 불구하고 경험자에게 이야기를 듣고 메뉴얼을 볼 경우, 그 이해가 쉽고 빠르게 되는것과 비슷하다.
         우리는 충분히 이성적이기에 주석 자체만을 보고 모든것을 믿으려고 할 만큼 어리석지는 않다. 주석을 먼저 거쳐간 사람의 숨길로 느끼고, 재미로 느낄 수 있게 되면 코드 리뷰가 항상 지루하지는 않을 것이다.
  • ACM_ICPC/2011년스터디 . . . . 7 matches
          * 맞게 푼 것인지 확인은 http://poj.org 에서
          * 제 코드에 무엇이 문제인지 깨달았습니다. 입출력이 문제가 아니었어요. 숫자 범위 괜히 0이거나 3000 이상이면 "Not jolly" 출력하고 break하니까 이후에 더 적은 숫자가 들어온 경우가 무시당해서 Wrong Answer(출력 하든 안하든, 0 제외하고 3000 이상일 때만 하든 다 Wrong..;ㅅ;) 입력을 하지 않을 때까지 계속 받아야 하는데, 임의로 끊었더니 그만..... 그리고 continue로 해도 마찬가지로 3000을 제외하고 입력 버퍼에 남아있던 것들이 이어서 들어가서 꼬이게 되는! Scanner을 비우는 거는 어찌 하는 걸까요오;ㅁ;? 쨋든 그냥 맘 편하게 조건 지우고 Accepted ㅋㅋ 보증금 및 지각비 관련 내용은 엑셀에 따로 저장하였습니다. - [강소현]
          * 이래저래 어느 부분이 잘못 되었는지나오지 않아 더 헤맷던 것 갔네요 -_-;; 어쩌다 정렬까지 쓰게 되어서 시간도 오래 걸리고.. 결국 완성 했는데 왜 뿌듯하지 않을까요? ㅋㅋㅋ;; - [권순의]
          * 저번주에 온 사람들은 이제 모두 JollyJumper를 해결한거 같네요. 이제 입출력에서는 좀 덜 틀리겠죠..-_-; 다음주 나이트의 여행은.. 전 뭔가 어렵지 않을까 생각은 들지마는 코드 길이도 길고, 시간도 오래걸리고, 메모리도 많이 먹는 코드를 짜면 괜찮지 않으려나 싶네요 --; 다음주는 시험기간 전이라 스터디를 할 지 안할지 다들 의견교환을 해봐야 할거같네요 -[김태진]
          * A Knight's journey 어렵네요 ㅠㅠ 알고리즘 배운지 얼마나 됐다고 리셋이 된거지!?! 왠지 백트래킹을 써야할 거 같지만...잘 못쓰겠는 ;ㅅ; An easy problem 같은 경우 부주의하게 했다가 여러 예외를 고루고루 겪었슴다 ~ㅁ~ㅋ 다음에는 코드 한번 더 살펴보고 넣어야지ㅠㅠ - [강소현]
          * [권순의] - 얼라 이거 안 쓰고 있었네 (흠흠) 솔져는 참.. 어이없게 끝났네요. 결국 마무리도 못하고 -_-;; 이번 문제는 어렵지는 않았는데,, 왜 Presentation Error가 뜨는거지 이러고 있습니다. -_-;;
  • APlusProject/ENG . . . . 7 matches
         Upload:APP_SetupManual_0609.zip --바로 위에 최종문서라고 적힌거 확인했는데 인덱스인가 승인에 잘못되어있길래 다시 수정해서 올립니다(qa)
         --다시 출력해야 하지 않을까요 -ㅁ-
         === asp.net웹 응용프로그램 만들기 할때 에러 발생시 해결책 ===
         Upload:APP_ASP.NET_Error.hwp
         XP가 OS일 경우 보안탭이 안보입니다. 이것을 해결하는 방법은...
         프로그램 확인 했습니다. 잘 되네요. 수고하셨습니다. 한편 추가된 페이지들로 인해 기본 설계와 상세 설계가 약간 변경해야 할 듯 합니다. 구현 하면서 설계때 생각치 못했던 게 나와서 설계 문서에 영향을 주리라는 건 이미 예상했던 일입니다. --재동
         3. CM 페이지서 "확인"을 눌러줍니다.
  • BusSimulation/태훈zyint . . . . 7 matches
          if(bus[i].isstation() != -1 ){ //버스 정류장일경우
          if(stationno < cangetno){ // 태울수 있는 사람의 숫자가 더 많을 경우
          } else { //탈수있는 사람수보다 정류장에 사람이 더 많을 경우
          } else{ //버스 정류장이 아닐경우
          if (!ismove()) return -1; //운행중이지 않을 떄에는 움직이지 않는다.
          //버스가 모든 노선을 다돌았을 경우 처음으로 이동시킨다.
          if(BusStationNo-1 < i) return -1; //버스정류장이 아닐경우
  • C/C++어려운선언문해석하기 . . . . 7 matches
         CodeProject에서 최근에 아주 흥미로운 글을 읽었습니다. 글의 내용이 별로 길지도 않고 워낙 유용한 정보라 생각되서 날림으로 번역해봤습니다. 영어와 한글의 어순이 반대라서 매끄럽지 못한 부분이 많은데 이런 경우 원문도 같이 볼 수 있도록 같이 올렸습니다.
         선언문을 직면했을 때 이를 어떻게 해석하는가를 알려주기 위한 글입니다. 매우 기본적이고 평범한 예제에서 시작해서 복작한 경우까지
         를 선언하는 경우 선언문에서 바로 초기화를 해줍니다. 변경이 불가능하기 때문에 선언문 외에서는 값을 초기화할 수 없겠죠.
         된 후에 다시 r = &m 과 같이 다른 주소값을 할당하는 것이 불가능합니다. (물론 m은 또 다른 int형 변수이겠죠) 물론 이 경우 *r의
         변수 p, q 모두 char를 가리키는 포인터 변수가 됩니다. typedef가 사용되지 않았다면 q는 char를 가리키는 포인터 변수가 아니라 char 형 변수였을 텐데 솔직히 이런 사실을 모르는 경우 실수하기 쉽상이죠.
         원문에서는 설명이 없었지만 클래스 멤버 함수 포인터의 경우에도 똑같은 규칙이 적용될 수 있다는걸 알 수 있습니다. 원문에 달린 답글
         같은 맥락으로 호출규약이 들어간 경우에도 똑같은 규칙을 적용합니다.
  • ComputerNetworkClass/Report2006/PacketAnalyzer . . . . 7 matches
         WSA prefix 를 가진 함수의 경우 대부분 Winsock 2에서 제공 되기 시작한 것이며, 이 WSAIoctl 역시도 윈속 2에서 지원된다.
         ※ 'SIO_RCVALL' : undeclared identifier 에러가 뜰 경우에 아래 코드를 추가 한다.
          printf("WSAStartup() failed: %d\n", GetLastError());
          printf("WSASocket() failed: %d\n", WSAGetLastError());
          if (bind(s, (SOCKADDR *)&if0, sizeof(if0)) == SOCKET_ERROR)
          printf("bind() failed: %d\n", WSAGetLastError());
          NULL, 0, &dwBytesRet, NULL, NULL) == SOCKET_ERROR)
          WSAGetLastError());
          if (ret == SOCKET_ERROR)
          printf("WSARecv() failed: %d\n", WSAGetLastError());
  • Cpp에서의멤버함수구현메커니즘 . . . . 7 matches
          // id 확인
          cout << endl << ":::::: Case 2 - id 확인" << endl;
          foo4.die(); // debug mode에서 assertion error
         :::::: Case 2 - id 확인
         === 각각의 경우에 따른 테스트 ===
          foo3.die(); // debug mode에서 assertion error
         그러나, 컴파일러인 우리는 이 정보를 지역 변수이든, new 로 할당이든 컴파일 시간에 인자의 type을 보고 함수 호출 유효성을 확인하고, 적절한 함수 포인터를 함수 호출하는 부분에 넣어 줄수 있습니다. 그리고 실행할 수 있는데 이 과정을 두번째에서 설명합니다.
         라는 코드는 x의 값을 변화시키지 않습니다. 변화시킬수 없습니다. 이유는 call by value 로 넘어온 x의 값을 NULL로 변경시켜봤자, 영향 받지 않는 코드가 경우가 있기 때문에, 변화시킬 필요성이 없습니다.
          * 위의 호출시에 pointer 의 유효성은 확인하지 않는다.
  • Gof/Composite . . . . 7 matches
         다음과 같은 경우에 CompositePattern 을 이용할 수 있다.
          * 클라이언트들이 개개별 객체들과 객체들의 조합들의 차이점에 신경쓰지 않도록 하고 싶을 경우. Composite를 이용함으로써, 클라이언트들은 composite 구조의 모든 객체들을 동등하게 취급할 것이다.
          * 클라이언트들은 Component 클래스의 인터페이스를 이용, composite 구조의 객체들과 상호작용을 한다. 만일 상호작용하는 객체가 Leaf인 경우, 해당 요청은 직접적으로 처리된다. 만일 상호작용하는 객체가 Composite인 경우, Composite는 해당 요청을 자식 컴포넌트들에게 전달하는데, 자식 컴포넌트들에게 해당 요청을 전달하기 전 또는 후에 추가적인 명령들을 수행할 수 있다.
          * 디자인은 좀 더 일반화시켜준다. 새로운 컴포넌트를 추가하기 쉽다는 점이 단점으로 작용하는 경우는 composite의 컴포턴트들로 하여금 제한을 두기 힘들다는 점이 있다. 때때로 특정 컴포넌트들만을 가지는 composite를 원할 때가 있을 것이다. Composite 인 경우, 이러한 제한을 강제도 두기 위해 type system에 의존할 수 없게 된다. 그 대신 실시간 체크를 이용해야 할 것이다.
          * DecoratorPattern 은 종종 Composite와 함께 이용된다. descorator 와 composite 가 함께 이용될때, 그것들은 보통 공통된 부모 클래스를 가질 것이다. 그러한 경우 decorator는 Add, Remove, GetChild 와 같은 Compoent 의 인터페이스를 지원해야 한다.
  • HelpOnMacros . . . . 7 matches
         매크로는 위키 페이지에 특수한 기능을 집어넣는 확장입니다. 대부분의 위키페이지는 매크로기능을 사용하지 않고 있지만 경우에 따라서 이러한 특수한 기능이 필요할 때가 있습니다. 예를 들어 RecentChanges 페이지에는 RecentChanges매크로를 사용하고 있고, SystemInfo 페이지에는 SystemInfo 매크로를 사용하고 있습니다. 각 페이지를 편집하거나 [[Icon(info)]]를 눌러 이전 정보로부터 페이지 소스를 보시면 매크로를 어떻게 사용하고 있는지를 보실 수 있습니다.
         매크로는 {{{[[MacroName]]}}}과 같은 문법을 사용합니다. 매크로에 대한 인자가 필요한 경우가 있는데 각 매크로에 대한 자세한 설명은 해당 페이지에서 확인하실 수 있습니다.
         {{{[[MacroName]]}}} 혹은 인자가 필요한 경우에는 {{{[[MacroName(arg1,arg2,arg3...)]]}}}처럼 사용합니다.
          * 매크로 문법은 {{{[[페이지 이름]]}}}문법과 충돌을 일으킬 수 있습니다. 예를 들어 DateTime 페이지가 있을 때에 {{{[[DateTime]]}}}이라는 식으로 DateTime을 연결할 수 없습니다. 이 경우 [[DateTime]]이라고 나오게 됩니다. 이런 경우에는 {{{[["DateTime"]]}}}이라고 하면 [["DateTime"]]이라고 링크가 걸립니다.
          * 이경우 대소문자 구분이 중요한데, 반드시 `plugin/파일이름.php`에 대응하는 파일이름을 {{{"각주"=>"매크로파일이름"}}}식으로 지정해야 합니다.
  • IsbnMap . . . . 7 matches
         알라딘 같은 경우 품절이나 재발매 등으로 ISBN이 새로 배정됐을 때, 그림은 예전 껄 그대로 가져다 씁니다.
         이런 경우, 어떤 식으로든 그림의 주소를 전달하는 방식을 만들 수 있을까요?
          IsbnMap 에서 map 을 분리해서 사용하는 방법이 있을 수 있고 - 이 경우 출판년도에 따라서 옵션을 달리 줘야 하는 불편함이 있습니다. - ISBN 매크로를 고쳐서 (가능하다면 jpg가 없을 때 gif를 찾는 어떤 로직을 넣는 방법이 있을지 않을까 하는 생각이 듭니다. 제가 coding에 능력이 전혀 없는지라, 이게 구현할 수 있는 방법인지는 모르겠지만 논리적 차원에서는 이게 사용자 정신건강에 이로운 해결책이 아닐까합니다. (제 위키에서 책목록을 관리하는데 수작업으로 바꿔 줄 생각을 하니 조금 끔직합니다. - 스크립트를 돌려도 되기는 하지만 ... )
          모니위키 1.1.3에서는 이와 관련된 버그가 고쳐졌고, 알라딘 같은 경우는 확장자가 jpg/gif인 경우를 자동으로 검출합니다. 이 경우 php.ini에 {{{'allow_url_fopen=1}}}같은 식으로 설정이 되어있어야 합니다. 또, config.php에 {{{$isbn_img_download=1;}}} 와 같이 옵션을 넣으면 이미지를 다운로드할 수도 있게 하여, 일부 referer를 검사하여 이미지를 보이지 않게 하는 사이트에서도 활용하기쉽게 하였습니다. -- WkPark [[DateTime(2009-01-13T07:14:27)]]
  • Java/문서/참조 . . . . 7 matches
         채팅 UI를 짜려고 여러가지를 하다가 대화명을 입력하였을 경우에 그 대화명을 저장하려고 String 형태의 대화명을 전달인자로 사용하려고 하였는데 되지 않았다. 그래서 MSN을 통해서 상민이 형에게 그에 대해서 물어보았다. 상민이형이 MSN으로 몇십분에 걸쳐서 알려 주었다.(감사~) 이 문서에 나와 있는 내용에 대해서 아시는 분들도 있겠지만, 저와 같이 잘 모르는 분도 또한 있을거 같기에 도움이 되기를 바라면서 상민이 형이 알려준 내용을 간추려 보았다.
         그래서 위와 같은 경우
         을 호출하는 경우에는 NullPointerException이라면서 에러 객체를 발생시킨다.
          그리고 만약 200KB 의 스트링 형에게 나중에 2byte 만을 할당하는 다음의 경우에도
          문제는 200KB의 사소한 용향이 아닌 그게 2메가 짜리의 문서의 경우는 문제가 된다.
          문자열의자료의 경우 StringBuffer 를 사용하는 걸 권장한다.
  • MFCStudy_2001/MMTimer . . . . 7 matches
          * MMRESULT에는 타이머의 번호가 리턴됩니다. NULL일 경우에는 실패한 경우입니다.
          CALLBACK 함수를 전역으로 선언한 경우
          CALLBACK 함수를 클래스 함수로 선언한 경우[[BR]]
          * CALLBACK 함수는 클래스 내에서 선언 될 경우에는 static으로 선언 되어야합니다.
          * m_nTimerID는 UINT형 입니다. 성공할 경우에는 타이머의 번호가 넘어옵니다.
          * this는 이 클래스 인스턴스의 값을 넘겨줍니다. 클래스 내부 함수로 선언했을 경우네는 중요한 인자값입니다.
  • MobileJavaStudy/Tip . . . . 7 matches
          * 메모리가 겹치는 경우가 절대로 없게 한다.
         {{{~cpp destoryApp}}} 메소드에는 {{{~cpp unconditional}}} 이라는 {{{~cpp boolean}}} 값이 있다. {{{~cpp MIDlet}}}이 더 이상 필요하지 않거나 종료되어야 할 때 {{{~cpp DestoryApp}}} 메소드가 호출되고 {{{~cpp MIDlet}}}이 {{{~cpp Destroyed}}} 상태로 들어가게 되는데, 만약 {{{~cpp MIDlet}}}이 중요한 과정을 수행중이라면 {{{~cpp MIDletStateChangeException}}}을 발생시켜 그 과정이 끝날때까지 {{{~cpp Destroyed}}} 상태로 가는 것을 막을 수 있다. 하지만 이런 요청도 상황에 따라 받아들여지지 않을 수 있는데, {{{~cpp unconditional}}} 이라는 값이 그 상황을 알려준다. {{{~cpp unconditional}}}이 {{{~cpp true}}} 인 경우에는
         {{{~cpp MIDletStateChangeException}}}을 발생해도 무시되는 상황이고, {{{~cpp false}}} 인 경우에는 {{{~cpp MIDletStateChangeException}}}을 발생하면 {{{~cpp Destroyed}}} 상태로 가는 것을 잠시 막을 수 있다.
         그러므로 {{{~cpp destroyApp}}} 메소드를 만들 때 {{{~cpp MIDletStateChangeException}}}을 사용해야 하게 된다면 {{{~cpp unconditional}}} 값에 따라 이 값이 {{{~cpp false}}}인 경우에만 {{{~cpp MIDletStatChangeException}}}을 사용하고 {{{~cpp true}}}인 경우는 무조건 {{{~cpp Destroyed}}} 상태로 가야하는 상황이므로 그 상황에 맞게 처리해 주면 된다.
  • MoniWikiTutorial . . . . 7 matches
          * 사용자 ID: 영문으로 사용자 ID를 만들 경우 보통 소문자 구성된 사용자 ID를 만드는 것이 일반적이지만, 위키위키에서는 FooBar같은 낙타식 사용자 ID를 종종 사용합니다. 한글로 만드셔도 됩니다.
          * 이메일주소: 시스템이 이메일을 지원하는 경우에는 자신의 이메일을 등록합니다. 페이지를 구독하거나 비밀번호를 잃어버렸을 때 필요합니다.
         한줄의 내용 전체가 같은 개수의 "=" 기호로 둘러쌓여 있는 경우. 이때 "=" 기호와 내용은 공백으로 분리되어 있어야 하며 그 줄은 "="기호의 개수만큼의 깊이를 가지는 제목줄이 됩니다. 예: [[BR]] `== 두번째 레벨 ==`
         공백을 보존되는 preformat을 사용하고 싶은 경우는 중괄호`{{{{{{ ... }}}}}}`를 사용합니다.: {{{
         단락의 구분이 모호할 경우는 "----"를 써서 <hr>을 넣을 수 도 있습니다.
          * 페이지를 만들때는 Template를 사용하면 편리한 경우도 있습니다.
         페이지를 만들기 전에 비슷한 주제 혹은 약간 다른 이름의 페이지가 이미 있는지 확인해 보시기 바랍니다.
  • NamedPipe . . . . 7 matches
          // the function returns a nonzero value. If the function returns // 접속이 될 경우 0 아닌 값이 리턴 되며
          // zero, GetLastError returns ERROR_PIPE_CONNECTED. // 만약 0 값이 리턴이 될 경우 ERROR_PIPE_CONNECTED를 리턴한다.
          TRUE : (GetLastError() == ERROR_PIPE_CONNECTED);
          // Exit if an error other than ERROR_PIPE_BUSY occurs.
          if (GetLastError() != ERROR_PIPE_BUSY)
         // Default는 PIPE_READMODE_DATA 이고 PIPE_READMODE_MESSAGE가 실패할 경우 default로 정해진다.
          if (! fSuccess && GetLastError() != ERROR_MORE_DATA)
          } while (! fSuccess); // repeat loop if ERROR_MORE_DATA
  • SystemEngineeringTeam/TrainingCourse . . . . 7 matches
          * 여러 도메인 구매대행 업체를 비교하였으나 가격과 서비스는 큰 차이가 없었음. 결국 결제가 가장 편한곳을 찾게 되었는데 [http://www.dotname.co.kr/ 닷네임 코리아]는 무통장 입금 방식의 결제가 가능했음. 개인별로 임시 계좌번호를 만들어 입금하면 바로 확인 되는 형식이라 별도의 확인 전화를 하거나 상대편에서 확인할때까지 기다릴 필요가 없었음. [http://www.hosting.kr/ hosting.kr]은 AcitveX방식의 결제를 해야 쉬운 결제가 가능하고 그 이외에는 절차가 너무 복잡해서 쓰지 않았음.
         ||지원기간||7~8년||3~5년(LTS의 경우 10년)||변경자체가 드뭄|| ||
          * ubuntu Server는 GUI가 기본 탑재가 아니다 CentOS는 디자인이 나쁘긴 하지만 기본 탑재이다. 아마 익숙치 않은 상태에서 다룰때는 가끔 GUI로 작업하는 경우도 있으므로 GUI가 기본 탑재되있는게 편할수도 있다.
          * 서민관 - trello 쪽에 있는 서버 운영체제 요건을 봤을 때 대부분이 큰 차이가 없는 것 같고 안정성 면에서 CentOS, 업데이트 속도 면에서 Fedora/Ubuntu 라는 느낌이라서 둘 중에 어느 쪽에 중점을 두느냐에 따라 결정이 갈리는 것 같습니다. 이런저런 생각의 결과 Ubuntu 계열을 사용하기로 결정했습니다. 이유는 여럿 있는데, 첫째는 지금까지 Ubuntu를 좀 써 본 만큼 익숙한 환경에서 하는 것이 그 외의 문제에 시간을 덜 쓰고 문제 자체만을 다루기에 좋을 것 같다는 것입니다. 그리고 두 번째로 이번에 Raspberry pi를 구매했는데, 이쪽에서 기본적으로 제공하는 운영체제가 Debian 계열이라서 Ubuntu에서 작업을 해 보면 Raspberry pi에서도 좀 더 작업을 편하게 할 수 있지 않을까 하는 생각이 들어서 Ubuntu 계열을 쓰기로 결정했습니다.
          * 페도라는 데탑용이라서 조금 짜증 날수도 있어요. 그래도 서버로 쓸수 있긴하지만 가끔 너무 최신이어서 문제해결을 못하는 경우가 있더라고요. 그야말로 RHEL의 베타테스트 버전.. - [안혁준]
  • TugOfWarInput . . . . 7 matches
         참고로 TugOfWar 온라인 로봇 심사위원은 틀렸다. 잘못된 프로그램(50,50,100,200 경우 답이 150,250이어야 하는데, 200,200인 프로그램도 통과)을 걸러내지 못한다.
         사람이 총 네사람 있다. 몸무게가 각각 50, 50, 100, 200이다. 이 네사람을 두 팀으로 나눈다면 가능한 경우는 둘 씩 나누는 경우 하나 뿐이다. (하나 셋으로 나누면 두 팀의 인원 차이가 2가 되어서 부적격) 둘 둘 나눌 때 두 팀 간 몸무게 차이가 최소가 되는 경우는 150, 250인 경우이다. 200, 200으로 나누는 것은 불가능하다. 그러나 현재의 온라인 로봇 심사위원은 이런 틀린 답이 나올 "예리한" 테스트 케이스를 포함하고 있지 않아서 잘못 작성된 프로그램도 통과시킨다.
         제대로 작성된 프로그램은 당연히 온라인 로봇 심사위원의 테스트 케이스를 모두 통과하며, 게다가 덤으로 50,50,100,200 인 경우에도 통과한다. 하지만 Programming Challenges 책에 실린 모법 답안 등의 프로그램은 로봇 심사위원의 테스트는 통과하지만 50,50,100,200 같은 경우는 실패한다.
  • UbuntuLinux . . . . 7 matches
         물리적 하드 두개에 리눅스와 윈도우가 따로 설치된 상황이라서( 둘은 서로를 모른다.) 사실 안 되는 게 아닐까 걱정도 했다. 웹을 찾아보니 윈도우나 리눅스를 먼저 설치한 뒤 다른 하나를 설치한 경우가 대세였다. 태반은 하드 하나를 파티션을 나누는 방법으로( 굉장한 노력인듯.;; 하드가 두개 있어 아무런 걱정없이 리눅스를 다르는 하드에 설치한 나는 행운인가.;;;) 두 운영체제를 골라서 사용하는 방법을 설명하고 있었다.
         하지만 grub메뉴얼을 읽어보니까 내 경우도 듀얼부팅이 가능한가보다. 우분투는 설정파일 이름이 달라서 찾기 힘들었다. /boot/grub/menu.lst 라는 데 있으니 헤메지 맙시다. 설정파일에 다음을 추가하면 된다.
         일단 랜카드가 잘 잡혔는지 확인하려면
         집에 아직 윈도우즈가 돌아가는 컴퓨터가 한 대 남아있다. 동생은 게임을 해야 되서, 그 외에 인터넷 뱅킹이라든지 아무튼 윈도우즈가 필요한 경우 때문에 남겨둔 녀석이 골치덩어리다. 서버로 쓰는 리눅스를 통해 나머지 두대끼리 폴더 공유를 할 수 있어야 하는 경우가 생겼기 때문이다.
         SCIM이란 녀석이 있는데 참 좋다. 그 전에 쓰던 나비(Nabi)는 마지막 글자가 완성되지 않는 경우가 생기곤 했다.
         LAN이 연결된 공용 프린터를 사용하는 경우 HP Jet Direct를 이용하면 손쉽게 프린터를 잡을 수 있다.
  • UnitTest . . . . 7 matches
         보통 테스트 코드를 작성할때는 UnitTestFramework Library들을 이용한다. 각 Language 별로 다양한데, C++ 사용자는 ["CppUnit"], Java 는 ["JUnit"], Python 은 ["PyUnit"] 등을 이용할 수 있다. PyUnit 의 경우는 2.1부터 기본 모듈에 포함되어있다.
         SoftwareEngineering 에 있어서 UnitTest 는 '단위 모듈에 대한 테스트' 이다. 즉, 해당 기능이 제대로 돌아감을 확인하는 테스트가 UnitTest 이다.
         우리는 실제로 프로그래밍을 하는 중간중간에 결과값을 출력해봄으로서 제대로 돌아감을 확인한다. 이 또한 UnitTest 라 할 수 있겠다. (단, Manual Test 로 분류해야 하겠다.) 올바른 결과값인지 확인하는 과정을 코드로서 만들어 넣는다면 이 테스트는 자동화시킬수 있을 것이다.
          else printf ("error!\n");
         A: Socket 이나 Database를 이용하는 경우에는 문제가 되겠죠. 그럴때 MockObjects를 이용하는 방법이 있었던걸로 기억하는데, 아직 실제로 제가 해보지는 않아서요. 대강 개념을 보면 MockObjects는 일종의 가짜 객체로 실제 객체가 하는 일을 시뮬레이션 해주는 객체입니다. 미리 MockObjects 를 셋팅을 해두고 해당 함수결과의 리턴 요구시에는 예측할 수 있는 데이터를 리턴하게끔 하는 것이지요. 나중에 본 프로그램에서 MockObjects들을 토대로 실제의 객체를 만든다.. 식의 개념으로 기억하고 있긴 한데, 저의 경우는 공부만 하고 적용해본 적은 없습니다. --석천
         A: MockObjects가 최적입니다. Socket이나 Database Connection과 동일한 인터페이스의 "가짜 객체"를 만들어 내는 겁니다. 그러면 Socket 에러 같은 것도 임의로 만들어 낼 수 있고, 전체 테스팅 시간도 훨씬 짧아집니다. 하지만 "진짜 객체"를 통한 테스트도 중요합니다. 따라서, Socket 연결이 제대로 되는가 하는 정도만(최소한도로) "진짜 객체"로 테스팅을 하고 나머지는 "가짜 객체"로 테스팅을 대체할 수 있습니다. 사실 이런 경우, MockObjects를 쓰지 않으면 Test Code Cycle을 통한 개발은 거의 현실성이 없거나 매우 비효율적입니다. --김창준
  • UserStory . . . . 7 matches
         === Estimation 이 어려운 경우 ===
         estimate 를 하기 힘든 경우는 두가지가 있다. 하나는 해당 Story 가 애매한 경우이고 하나는 해당 Story의 구현이 전혀 생소한 부분인 경우이다. 해당 Story 가 애매한 경우에는, 주로 Story에서 해야 할일이 많은 경우이다. 해당 Story를 작은 Story들로 나누어서 생각해본다. 구현이 전혀 생소한 부분에 대해서는 SpikeSolution을 해본뒤 estimation 하는 방법이 있다.
         물은 물이고 산은 산이다에서 물은 물이 아니고 산은 산이 아니다로 가고 난 후에야 비로소 다시 물은 물이고 산은 산이다로 올 수가 있죠. 항상 초월적으로 모두 다 같다 혹은 모두 다 다르다는 식으로 말하는 태도는 공부를 하고있는 학생으로서는 상당히 위험하지 않을까 하는 우려를 해봅니다. Wiki:UserStoryAndUseCaseComparison 에 양자의 유사점, 차이점에 대한 논의가 있습니다. 참고로 Use Case의 대가라고 불리우는 코번은 다음과 같은 말을 합니다.
  • ZPBoard/APM/Install . . . . 7 matches
          * PHP 디렉토리에 있는 php4ts.dll 파일을 Windows 디렉토리의 System(Windows 98의 경우) 또는 System32(Windows NT, XP의 경우) 디렉토리에 복사한다.
          * 웹브라우져를 실행시켜 주소에 http://127.0.0.1/test.php 를 입력하고, 제대로 설치 되었는지 확인한다.
          * PHP 디렉토리에 있는 php4ts.dll 파일을 Windows 디렉토리의 System(Windows 98의 경우) 또는 System32(Windows NT, XP의 경우) 디렉토리에 복사한다.
          * 제어판 -> 관리 도구 -> 인터넷 정보 서비스 에서 기본 웹 사이트의 속성으로 가서 홈 디렉토리 탭의 구성 버튼을 누른다. 거기서 추가 버튼을 눌러 실행 파일에는 c:\php\sapi\php4isapi.dll 을 찾아 넣고, 확장명에는 .php 를 넣고 확인을 누른다.
          * 웹브라우져를 실행시켜 주소에 http://127.0.0.1/test.php 를 입력하고, 제대로 설치 되었는지 확인한다.
  • ZeroPageServer/set2002_815 . . . . 7 matches
          * Resin 상태 확인
          * [[HTML( <STRIKE> php 설치, 확인 </STRIKE> )]]
          * [[HTML( <STRIKE> python 설치, 확인 </STRIKE> )]] 2.1, 2.2 둘다 설치
          * [[HTML( <STRIKE> vim 설치, 확인 </STRIKE> )]] 6.1.18
          * [[HTML( <STRIKE> CVS 설치, 확인 </STRIKE> )]] 1.11.1p1
          * [[HTML( <STRIKE> gcc 확인 </STRIKE> )]] : 2.95, 3.0 중복 설치 ( linux권장 사항 )
          * [[HTML( <STRIKE> CVS 관련 더미 유저 세팅과, 원격지 확인 </STRIKE> )]]
  • 대학원준비 . . . . 7 matches
         제출서류 도착확인 2006. 7. 28(금), 10:00 - 8. 4(금), 17:00 KAIST 입학본부 홈페이지
         '''특별 TEPS시험 2006. 8. 6(일), 13:30까지 입실완료 접수 시 시험 장소 확인요망 -> 여기서 http://www.teps.or.kr/kaist/kwa_check.html'''
          * 서류 심사 내용이 간당 간당 한 사람의 경우 면접이 까다로움
          전형료 : 100,000원(우편접수의 경우에는 우편소액환으로 바꾸어 동봉)
          * 가끔 특차로 성적만으로 뽑는 경우 있음. 이렇게 특차로 뽑힌 사람의 경우 원하는 연구실로 가기 싶고, 추후 정시의 경우는 불리 할 수 있다고 함
  • 데블스캠프2002/날적이 . . . . 7 matches
         "열심히 하겠습니다", "좌절했습니다" 등의 닫힌 소감만 쓰는 것보다 구체적 경험과 그에 대한 분석까지 쓰는 것이 자신은 물론 다른 사람에게도 도움이 될 것입니다. 자신이 실패한 경우 그 경험에 대해 구체적으로 생각하고 분석해보고 차후 조정을 하지 않으면 똑같은 실패를 반복하기 쉽습니다.
          * [영동] : 우선 처음엔 랜덤워크의 변형인 랜덤워크2를 짰습니다만 "43134331256..."식으로 입력 받는 것과 x축의 칸수를 적게 하고 y축의 칸수를 많게 하고 계속 아래로 전진하면 숫자가 이상하게 올라가는 버그가 나왔는데 둘 다 아직 고치지 못 했습니다... 전자의 경우는 그래도 좀 연구하면 가망이 있어 보이는데 후자의 경우는 어디가 틀렸는지 감도 못 잡겠습니다. 그리고 선배님들께서 준비해 주신 구조적 프로그램, 객체지향 프로그램은 처음에 선배님들께서 해주신 강의까지는 그럭저럭 개념은 알겠는데 나중에 클래스로 랜덤워크 짜라는 것이 나온 후로는 데블스 캠프가 그냥 이걸로 끝이 아니라는 것을 느꼈습니다... 여기서 며칠 밤 새는 것 외에도 혼자서 공부해 나가야 할 것이 많다고 느꼈습니다.
          * [영동] : 오늘 오목을 짰습니다... 처음에 어렵사리 유저 인터페이스를 구현했습니다. 처음엔 덮어쓰기를 불가능하게 하고 칸 밖으로 삐져 나가지 않도록 고치는 것은 간단했습니다만... 오목인지를 확인하는 것... 육목은 인정 안 하는 것을 아직 못 했습니다. 대각선 방향으로 체크하는 것도 아직 못 했습니다. 너무 어렵네요. 빨리 적당한 알고리즘을 찾아야...
          * 성재) 우선 처음의 Unix의 경우는 쉽고 재밌었습니다. 제가 개인적으로 홈페이지에 관심이 많던터라 퍼미션 조정에 대해서도 잘 알수 있었구요.. 서버에서의 html을 찾아가는 경로도 알수 있어서 좋았습니다. 그런데... -_-;; 씨 프로그래밍은 여전히 어려웠습니다...-_-;; 첫번째 문제밖에 못풀었는데요.. 우선 Randomwork경우에는 문제조차 이해를 바로하지 못했던게 문제였던 것 같습니다. 동적배열을 쓰는 법도 잘 몰라서 문제였구요. 선배들이 도와주셔서 알긴 했지만 좀 더 공부해야 겠다는 생각이 들었습니다. 그리고 중요한 에러중에 하나가 괄호를 생략하는데서 나온건데요.. 코딩시 줄을 줄여보겠다는 일념<?>하에 괄호가 필요하지 않은데는 일일히 해주지 않았더니 꼬이더라구요... 코딩을 하는데에서의 인터페이스와 여러가지에 대해 깨우치고 알았던 기회였던 거 같습니다. 다음에는 좀 더 찬찬히 알고리즘부터 쫘악 짜서 천천히 풀어봐야 겠습니다...
         다들 피곤하실텐데 수고 많았습니다. 잘 가르쳐 주신 선배들도 넘 고맙구요 나두 광식이 오빠 너무너무 특히 고마웠어요~ 이말은 ㅡ.ㅡ;;;;; 오늘 밤 낼도 많이 부탁한다는 소리 ㅡ.ㅡ;;;;; 오빠 때문에 프로그램짜는거 넘 많이 도움이 된것 같아요. 사소한것 까지 화 안내시구 다 들어주신거 넘 고마워요 감격감격 ㅠ.ㅠ 앙~ 마방진 못끝낸게 너무 아쉬워요 머리속에서는 돌아가는듯 하면서도 안돌아가구 손가락은 움직이지두 않구 자다가 놀러 가야 하기 때문에 이제 일어 났어요 아마 녹초가 되지 않을까 오늘밤에는... 그럼 난중 봐요 다들 ^0^ 뺘뺘 ^^/
  • 새싹교실/2012/해보자 . . . . 7 matches
          * 전역변수를 왠만해선 사용하지 마라! 값을 원하지 않을 때 임의로 변경할 수 있다.
          - while: 조건식을 만족하는 경우 무한 반복으로 처리
          - continue 아래에 있는 명령어들을 처리하지 않고 반복문의 처음으로 다시 돌아간다.(물론 조건식을 다시 확인)
          * for를 사용하는 경우: 반복처리할 횟수가 명확할 때
          * while을 사용하는 경우: 반복처리할 횟수가 명확하지 않을 때(특정 조건이 되어야 반복을 그만두게 할 때)
          * switch 문에서 break를 주지 않는 경우, 각 case를 전부 처리할 수도 있다.(if문과 다른 점)
  • 위키설명회2005/PPT준비 . . . . 7 matches
         특히 방학때 ==> 스터디를 통해서 본격적으로 공부함... 여름방학 같은 경우 데블스 캠프, 2학기 프로그램 전시회 준비
          정모에 2회 연속으로 활발히 참여한 사람을 회의를 통해서 회원으로 인정한 경우
         많은 사람이 참여하지 않아서 위키가 널리 퍼지지 못하고 있지는 않을까 생각해 봅니다.
          * 그런데 디자인이 구립니다. 그점이 처음 온 사용자들에게 뒤로 버튼은 눌르게 만드는 결정적인 요인일수도 있습니다. 글씨만 빼곡히 ... 어려워보입니다. 더이상 쉬워지기 힘든데도 말이죠. 많은사람이 참여하지 않아서 그래서 위키의 사상,철학,이념,방식, 시스템이 널리 퍼지지 못하고 있지는 않을까 생각해봅니다
          * 위키위키가 어떠한 경우에나 적합하다고 하기는 힘들 것이다. 예를 들어, 정치적으로 대립이 심한 사이트에서 위키위키가 제대로 운영될 수 있을지는 의문이다.
         백문이 불어일견. 실제로 페이지를 보면서 페이지 구조를 설명하는 시간도 있었으면 좋겠다. 거의 모든 위키의 기능을 담은 페이지가 하나 있으면 좋지 않을까??
         해당 페이지나 그 페이지의 일부분이 특정 페이지와 관련이 있을 경우, 관련있는 부분 마지막에 SeeAlso를 추가한다.
  • 전시회 . . . . 7 matches
          * 출석 프로그램의 경우 이름순 정렬이 되지 않는다.
          * 세균전의 경우 더 이상 둘 곳이 없을 때 게임이 끝나지 않는다.
          * 3D지형 프로그램의 경우 지형의 끝에 도달할 경우에도 계속 전진이 가능하다.(좌표의 증가)
          * 이퀄라이져 프로그램의 경우 마이크를 끈 상태에도 이퀄라이져가 움직인다.
          * 설명해주는 오퍼레이터가 프로그램을 잘 모른다. 프로그램 개발자가 직접 오면 좋지만, 그렇지 못한 경우 좀더 상세한 설명이 있으면 좋았을 듯 하다.
          * 저것처럼 큰 행사는 아니어도. 한달에 한번씩 작은 전시회를 해보면 어떨까요??. 아무리 작은 성과라도 발표를 위해서 준비하는 과정이 필요하고 그 과정에서 다들 열심이 하는 분위기가 만들어 지지 않을까요??
  • 제로Wiki . . . . 7 matches
          * 개략적 설명 : 각 페이지는 자신의 뇌의 일부분으로 생각 할 수 있다. 각 페이지는 다른 페이지들과 종속 및 포함 관계를 가질 수 있다.(페이지 링크를 통해서 가능함) 그리고 이 페이지를 다른 여러 사람들과 공유할 수 있다. 기존 위키 처럼 하나의 커뮤니티에서의 공유가 아니라 다양한 커뮤니티 사이트들이 서로 서로 페이지를 공유 할 수 있게 되고, 그 공유 페이지가 업데이트 되었을 경우 현재 공유중인 모든 커뮤니티에 그것이 반영된다.(수정된글 목록에 떠서 사람들에게 환기 시킨다)
          * 하는 방법 : 예를 들어서 제로페이지 카페에 자신의 위키에 있는 페이지를 올리고 싶을 경우 먼저 제로페이지 카페에서 화면 오른쪽 상단의 가입하기 버튼을 눌러서 가입한후, 올리기를 원하는 페이지를 고칠때 카페 선택을 제로페이지로 하고 나서 저장하면 그후로 계속 공유 관계가 유지된다.
          * 자신이 페이지 만드는 데에 참여하고 싶은 페이지는 그 페이지가 있는 카페에 가서 그 페이지를 저장할때 카페에 자신의 개인위키를 지정함으로써 자신의 개인 위키에 그 페이지를 등록 시킨다. 그러면 그 페이지와 자신의 개인 위키가 공유 관계를 가지게 한다.(공유 관계 : 공유 중인 페이지가 업데이트(수정) 될 경우 공유 관계에 있는 모든 위키에 그것이 반영된다.)
          * 프로그래밍 카페 : 규모가 커질 경우 너무 다양한 주제 대한 글들이 올라 올 수 있다. 이때 자신이 관심 있는 언어를 분류어로 설정하여 그 언어에 대한 글들만 볼 수 있다.
          * 저렇게 할 필요 없이 각 분류어별로 게시판을 만들면 되지 않냐고 생각할 수 도 있다. 하지만!!! 그렇게 각각의 분류 별로 게시판을 만들경우 그 게시판의 글들을 확인 하기 위해서 각각의 게시판에 들어 가야 한다. 그리고 군대 전우 카페 같은 경우 각 회원마다 군생활 시기가 겹치는 사람도 있고 겹치지 않는 사람도 있는등 각 회원에 따른 맞춤식 정보 제공이 필요하다. 이럴때 분류어 기능이 유용하다.
  • 토비의스프링3/밑줄긋기 . . . . 7 matches
          * 템플릿과 콜백을 찾아낼 때는, 변하는 코드의 경계를 찾고 그 경계를 사이에 두고 주고받는 일정한 정보가 있는지 확인하면 된다고 했다.
          * 두 번째 방법은 테스트를 보강해서 원하는 사용자 외의 정보는 변경되지 않았음을 직접 확인하는 것이다.
          * 이것도 확인해야한다는 생각을 미처 못했다. - [김수경]
          * 이 정도 코드라면 한 번 살펴보는 것 만으로도 오류가 있는지 쉽게 찾아낼 자신이 있는 개발자도 있겠지만, 정말 뛰어난 개발자라면 아무리 간단해 보여도 실수할 수 있음을 알고 있기 때문에 테스트를 만들어서 직접 동작하는 모습을 확인해보려고 할 것이다.
          * 성격이 다른 두 가지 경우가 모두 한 곳에서 처리되는 것은 뭔가 이상하다.
          * 하지만 여러 개의 SQL이 사용되는 작업을 하나의 트랜잭션으로 취급해야 하는 경우도 있다.
          * 서비스 추상화란 이렇게 원활한 테스트만을 위해서도 충분히 가치가 있다. 기술이나 환경이 바뀔 가능성이 있음에도, JavaMail처럼 확장이 불가능하게 설계해놓은 API를 사용해야 하는 경우라면 추상화 계층의 도입을 적극 고려해볼 필요가 있다. 특별히 외부의 리소스와 연동하는 대부분 작업은 추상화의 대상이 될 수 있다.
  • 후각발달특별세미나 . . . . 7 matches
          교수님이 말씀하시는 주석은 소스가 어떻게 돌아가는지 설명하는 주석을 말하는거 아닌가 싶습니다. 리펙토링을 통해서 주석 없이도 이해가는 소스를 작성하도록 노력하고, 뭐 필요한 경우에는 쓸수도 있겠죠. - [상협]
          모듈화된 프로그램에서의 메모리 사용의 개념은 '''필요할 때마다 할당해서 쓰고 필요없으면 해제하자'''이고 전역변수나 메인함수내의 변수만을 사용하는 프로그램에서의 메모리 사용의 개념은 '''지금은 안쓰이더라도 나중에 쓸 메모리를 미리 할당하고 사용이 끝났더라도 메모리를 계속 잡아두자'''입니다. 전자의 경우에는 어느 순간 메모리를 많이 사용하는 경우도 있고 어느 순간에는 엄청 적게 사용하는 경우가 있습니다. 메모리 사용이 더 유동적이라고 할 수 있습니다. 밑에 참고 그래프(자체제작)를 참고해주시기 바랍니다. --[강희경]
          - 아래 상규의 말대로 큰 차이는 없을 것 같습니다. 모듈에서의 변수 선언, 사용에 있어서 메모리 사용량은 기껏해야 몇 바이트 정도가 아닐까요? 아래 코드처럼 극단적인 예가 아닌 이상 큰 변화가 없는 경우가 대부분이라고 생각합니다(물론, 동적할당은 여기서 논외입니다). 그런데, 아래의 코드는 몇가지 냄새가 나는 코드로군요. 큭. :(
         낮은 단계 최적화는 10% 속도 높히는 경우가 많지만 높은 단계 최적화는 100%나 1000%도 종종 있습니다.
         리팩토링을 잘 한다면, 속도문제는 나중에 신경 쓰는 것이 결과적으로 나은 경우가 많습니다.
  • 02_Python . . . . 6 matches
          * Class 개념 까지는 들어가지 않을 예정 .. 아직까지는 함수 개념 잡기가 바쁠꺼라는 생각이 듬
          '' C 나 C++ 은 소스를 한꺼번에 다 치고서 나중에 "컴파일" 하는식이지만 Python 의 경우 자신이 쓰는 라인마다 읽혀들어간다. ''
          '' 기존 C 나 C++ 의 경우는 어떠한 변수를 지정할떄 타입을 꼭 지정해 줘야했다 그 예로 int 나 char 이 있다 하지만 파이썬의 경우
         1234, -25,0 일반정수 이며 C의 경우 int 에 해당한다.
         1.23, 3E210 부동소수점이며 C의 경우 double 에 해당한다.
  • 5인용C++스터디/키보드및마우스의입출력 . . . . 6 matches
          키보드로부터 입력이 발생했을 경우 윈도우즈는 포커스를 가진 프로그램에게 키보드 메시지(WM_CHAR)를 보내주며 프로그램은 이 메시지를 받아 키보드 입력을 처리한다. 여기서 포커스(Focus)를 가진 프로그램이란 활성화되어 있는 윈도우를 말하며 한번에 오직 하나의 프로그램만 활성화된다. 아무리 여러개의 프로그램이 동시에 실행되는 멀티 태스킹 환경이라 하더라도 활성화될 수 있는 프로그램은 오직 하나밖에 없으며 활성화된 프로그램만 포커스를 가지고 키보드 입력을 받아들일 수 있다. 왜냐하면 시스템에 키보드는 하나뿐이며 키보드를 사용할 수 있는 사용자도 하나뿐이기 때문이다.
          키보드 메시지에서는 str배열에 문자열을 집어 넣기만 하며 문자열을 화면으로 출력하는 일은 WM_PAINT에서 맡는다. 단 키보드 메시지에 의해 문자열이 다시 입력되더라도 화면상의 변화는 없으므로 WM_PAINT메시지가 발생하지 않는다. 그래서 강제로 WM_PAINT 메시지를 발생시켜 주어야 하는데 이 때는 InvalidateRect 함수를 호출해 주면 된다. WM_CHAR에서 문자열을 조립한 후 InvalidateRect 함수를 호출해 주어 키보드가 입력될 때마다 화면을 다시 그리도록 하였다.
          키보드로부터 문자를 입력받고자 할 경우는 WM_CHAR 메시지를 사용하면 된다는 것을 배웠다. 문자 이외의 키를 입력 받으려면 WM_CHAR 메시지만으로는 입력을 받을 수 없다. 예를 들어 커서 이동키라든가 Ins, Del, PgUp, 펑션키 등의 키는 문자키가 아니기 때문에 WM_CHAR 메시지로는 검출해 낼 수 없다. 이때는 WM_KEYDOWN 메시지를 사용해야 한다.
         GetMessage는 메시지 큐에서 메시지를 꺼내온 후 이 메시지를 TranslateMessage 함수로 넘겨 준다. TranslateMessage 함수는 전달된 메시지가 WM_KEYDOWN인지와 눌려진 키가 문자키인지 검사해 보고 조건이 맞을 경우 WM_CHAR 메시지를 만들어 메시지 큐에 덧붙이는 역할을 한다. 물론 문자 입력이 아닐 경우는 아무 일도 하지 않으며 이 메시지는 DispatchMessage 함수에 의해 WndProc으로 보내진다. 만약 메시지 루프에서 TranslateMessage 함수를 빼 버리면 WM_CHAR 메시지는 절대로 WndProc으로 전달되지 않을 것이다.
  • AcceleratedC++ . . . . 6 matches
         http://www.acceleratedcpp.com/details/errata.html 에서 오류확인 필요.
          || [http://www.acceleratedcpp.com/details/msbugs.html VS6 코드 수정] || 책에 나온 소스를 VS6에서 이용할 경우 발생하는 문제점에 관한 내용이 있습니다. ||
          || [STLErrorDecryptor] || 강추, 이거 설치 하니깐 좀 할만 하네 -_- -[상협] ||
         이제 하루정도면 다 볼거 같은데... 이미 C++의 기본 문법과 템플릿의 용법을 알고 있다면, (05년 스터디의 경우 01학번들) 8장정도 까지만 하면 충분히 이 책에서 볼것은 다 보았다고 보여진다. 만약 처음으로 C++을 접하는 경우 (05년 스터디의 경우 05학번) 마지막 까지 읽어야할 필요가 있음. 물론 상당한 분량의 C++의 깊숙한 내용을 너무 간단하게 다루는 경향이 이 책에 있기 때문에 C++ Primer Plus 같은 책을 같이 보아야할 필요가 있어보인다. 책을 좀 빠르게 읽는 편이라면 2~3일동안 집중해서 본다음에 실전에 적용시켜보는 훈련이 책 잡고 있는 것보다 더 도움이 될 것으로 보인다. 그리고 이 책 -_-;; 예제가 정말로 유기적이다. 예제를 만든 사람이 더 대단해 보인다. - [eternalbleu]
  • AcceleratedC++/Chapter0 . . . . 6 matches
          main 함수의 리턴형은 ISO/ANSI C++ 표준에서 int로 정하고 있다. 리턴값은 프로그램이 아무런 에러 없이 종료되는 경우에는 0을 리턴하도록 되어 있고, 에러가 발생해서 종료한 경우에는 0 이외의 값을 리턴하도록 되어있다. 이 값은 OS로 돌려지는 값이기는 하지만 OS에서 이것에 따라 특별히 처리하는 것은 없기 때문에 일반적인 경우에는 이 값은 아무런 의미가 없다. 이 값을 이용할수 있는 방법으로는 exec... 함수를 이용하여 프로그램을 실행해주고 받아오는 방법 등이 있다.
          C++의 모든 문장(statement)은 계산 가능한 식이다. 컴파일러에서 에러를 찾을때도 계산 가능한 식인지 확인하여 문장이 올바른 문장인지 에러는 없는지 확인하게 된다. 예를 들어 다음과 같은 두 문장이 있다고 하자.
          첫번째 문장을 계산하면 a라는 변수에 10을 대입하면 되고 결국 남는것은 a밖에 없으므로 a의 값이 최종 결과가 된다. 두번째 문장을 계산하면 std::cout과 "Hello World!!"를 왼쪽 쉬프트 연산을 하고 나온 결과가 최종 결과가 된다. 실재로 연산 결과가 std::cout 이고 이것이 최종 결과가 된다. 여기서 왼쪽 쉬프트 연산이 과연 std::cout과 "Hello World!!" 사이에서 가능한 것인가 라는 의문을 갖게 될수도 있겠지만 C++에는 연산자 재정의(operator overloading) 라는 것이 있기 때문에 이런것을 충분히 가능하게 만들수 있다고만 알고 넘어가기 바란다. 여기서 두번째 문장을 자세히 알고 넘어갈 필요가 있다. 두번째 문장도 앞에서 설명했듯이 계산 가능한 식이고, 결국 실행되면 계산이 수행되지만 그것과 더불어 일어나는 일이 한가지 더 있는데, 바로 표준 출력으로 "Hello World!!" 가 출력된다는 것이다. 이렇게 계산되어지는 과정에서 계산 결과와 더불어 나타나는 것을 side effect라고 한다. 첫번째 문장과 같은 경우에는 side effect가 없다. 다음과 같은 두 문장이 있다고 하자.
  • AcceleratedC++/Chapter6 . . . . 6 matches
          * 참 깔끔하다. rbegin()은 역시 반복자를 리턴해주는 함수이다. 거꾸로 간다. equal함수는 두개의 구간을 비교해서 같을 경우 bool 의 true 값을 리턴한다. 파라매터로 첫번째 구간의 시작과 끝, 두번째 구간의 시작 iterator 를 받는다. 두번째 구간의 끝을 나타내는 iterator 를 요구하지 않는 이유는, 두개의 구간의 길이가 같다고 가정하기 때문이다. 이는 equal 함수의 동작을 생각해 볼때 합당한 처리이다.
          // 같지 않으면 실행한다. (즉, sep를 찾았을 경우)
          --beg; //protocol-typed의 위치에 존재하는 문자열이 조건에 맞을 경우 앞으로 한칸씩 움직이면서 검사한다.
          Chapter 4.2에서 제시된 중앙값을 이용한 방식으로 성적을 계산할 경우 악의적으로
          과연 어느 정도로 결과에 영향을 주는지 실제로 프로그램을 작성하여 확인해본다.
          2. 과제를 하나도 내지 않은 학생일경우 오류 발생
          } catch(domain_error) {
  • AcceleratedC++/Chapter8 . . . . 6 matches
         using std::domain_error;
          throw domain_error("median of an empty vector");
          || find(c, val) || 범위 지정이 불가능하고, 유용성이 첫번째의 경우보다 적다. ||
          예를 들자면 find(B, E, D)같은 함수의 경우 ''아주 단순한 제한적 연산만을 이용''하기 때문에 대부분의 컨테이너에 대해서 사용이 가능하다. 그러나 sort(B, E)같은 경우에는 ''기본적인 사칙연산들을 반복자에 대해서 사용''하기 때문에 이런 연산을 지원하는 string, vector 만이 완벽하게 지원된다.
          상기 요구사항을 만족시키는 경우의 반복자를 '''''출력 반복자(Output iterator)'''''라고 함.
          임의 접근 반복자의 경우 '''양방향 반복자의 모든 특성'''과 함께 다음과 같은 연산을 만족한다.
          * 마지막 요소를 범위의 끝으로 정할 경우 범위안에 찾는 것이 없을때 이를 알려주는 수단이 부재하다.
  • BusSimulation/상협 . . . . 6 matches
         { //어떠한 이벤트를 발생시키는지 생각해보면 이해하기 좋음.
          { //가는 이벤트가 발생할 경우 어떻게 표시해줄지 생각한다.
          void StationStopProcess(Bus &CheckedBus, int Station); //버스 정류장 버스가 도착했을 경우
         { //발생시키는 발단이 되는 이벤트라고 생각할수 있다. 시간이 멈추면 어떤 이벤트도
          m_buses[i].IncreaseMinute(1); //즉 그 버스가 출발한 경우라면, 그 버스의 시간을 증가시킴
          StationStopProcess(m_buses[i],j); //정차할경우 정차할때 발생하는 이벤트들을 발생
  • CToAssembly . . . . 6 matches
         이 프로그램은 C 문장 add(10,20)이 다음과 같은 어셈블러코드로 변환됨을 확인하면 명확해진다:
         문장 foo: .long 10은 foo라는 4 바이트 덩어리를 정의하고, 이 덩어리를 10으로 초기화한다. 지시어 .globl foo는 다른 파일에서도 foo를 접근할 수 있도록 한다. 이제 이것을 살펴보자. 문장 int foo를 static int foo로 수정한다. 어셈블리코드가 어떻게 살펴봐라. 어셈블러 지시어 .globl이 빠진 것을 확인할 수 있다. (double, long, short, const 등) 다른 storage class에 대해서도 시도해보라.
         Libc wrapper는 시스템호출 규칙이 변경되는 경우 프로그램을 보호하고, 커널에 그런 시스템호출이 없는 경우 POSIX 호환 인터페이스를 제공하기위해 만들어졌다. 그러나, 유닉스 커널은 보통 거의 POSIX에 호환한다: 즉 대부분의 libc "시스템콜"의 문법은 실제 커널 시스템호출의 문법과 (반대로도) 정확히 일치한다. 그러나 libc를 버리지않는 이유는 시스템콜 wrapper외에 printf(), malloc() 등 함수도 있기때문이다.
         결과는 컴퓨터마다 다를 것이다. 그러나 인라인 어셈블리를 사용한 코드가 매우 빠르게 실행됨을 확인할 수 있다.
         GCC의 최적화는 asm 표현이 있더라도 실행시간을 최소화하기위해 프로그램 코드를 재배열하고 재작성하려고 시도한다. asm의 출력값을 사용하지 않는다고 판단하면, asm과 아규먼트 사이에 키워드 volatile이 없는 한 최적화는 명령어를 생략한다. (특별한 경우로 GCC는 출력 연산수가 없는 asm을 반복문 밖으로 옮기지 않는다.) asm은 예측하기 힘든 방식으로, 심지어 호출간에도, 옮겨질 수 있다. 특별한 어셈블리 명령어 순서를 보장하는 유일한 방법은 모든 명령어를 모두 같은 asm에 포함하는 것이다.
  • Cockburn'sUseCaseTemplate . . . . 6 matches
         == 확장된 경우 ==
         == 변이된 경우 ==
         == 확장된 경우 ==
         == 변이된 경우 ==
          * 주문 일부만 받을 경우 어떤 일이 일어나는가?
         필요한 경우 다른 유스케이스에 링크를 걸 수 있을 것이다. 더 좋은 방법은 책에서 설명했듯이 유스케이스 번호만 주면 보여지는 내용을 자동으로 생성하게 만드는 것이다. 예를 들어 ''UseCase5'' 라고 적힌 부분은 자동으로 ''물건을 구매한다. (유스 케이스5)''이런 식으로 생성한다.
  • EffectiveSTL/Container . . . . 6 matches
          * vector 는 Sequence Container 니까 보통 Associative Container 들(주로 Map)보다 메모리낭비가 덜함. 그대신 하나 단위 검색을 할때에는 Associative Container 들이 더 빠른 경우가 있음. (예를 들어 전화번호들을 저장한 container 에서 024878113 을 찾는다면.? map 의 경우는 바로 해쉬함수를 이용, 한큐에 찾지만, Sequence Container 들의 경우 처음부터 순차적으로 좌악 검색하겠지.) --[1002]
          * 전자는 배열을 기반으로 하는 Container(즉, 동적 메모리 할당을 할때 할당된 메모리들이 연속적이 된다), 후자는 노드를 기반으로 하는 Container(노드의 경우는 반드시 연속적인 메모리가 아닐 수 있다.)다. 노드가 뭔지는 링크드 리스트를 짜보면 알게 된다.
          ''STL Tutorial and Refereince 를 보면, 일부러 해당 Container 에게 최적화된 메소드들만 지원한다고 써있었던 기억. 예를 든다면, Vector 의 경우 push_front 같은 것이 없다. (만일 vector에 push_front 를 한다면? push_front 될때마다 매번 기존의 원소들 위치가 바뀐다.) --[1002]''
          * 또 하나의 문제점, insert 메소드는 실행할때마다 새로운 공간을 할당하기 위해 하나씩 밀린다. 만약 컨테이너가 n개의 객체를 가지고 있고, 거기다 m개의 객체를 insert로 넣으면.. n*m만큼 뒤로 땡기느라 시간을 낭비하게 된다. int같은 기본 자료형이면 괜찮을지도 모르지만.. 만약에 객체가 큰 경우라면, 대입 연산자, 복사 생성자 이런것도 저만큼 호출하게 된다. 미친다.
  • Emacs . . . . 6 matches
          * Emacs 처음 설치 시에는 해당 파일이 존재하지 않는 경우도 있습니다. 이럴 때는 당황하지 마시고 HOME 디렉토리 밑에 .emacs라는 이름으로 파일을 만들어 주시면 됩니다.
          * .emacs 파일을 작성하거나 편집할 필요가 있을 경우에는 C-x-f ~/.emacs로 해 주면 Windows 환경에서도 알아서 HOME 디렉토리 밑에 만들어 줍니다.
          * 강제 삭제 : d -> e(혹은 x)로 해당 패키지를 지울 수 있긴 한데 제대로 지워지지 않는 경우가 좀 있다(...). 그럴 경우는 해당 파일이 ELPA의 폴더 안에 들어가 있기 때문에 ~/.emacs.d/elpa에 들어가서 해당 패키지의 폴더를 지워버리면 된다. 그 후 Emacs를 다시 기동해서 M-x package-list-packages를 보면 해당 패키지가 설치 항목에서 지워진 것을 볼 수 있을 것이다.
         ;; 'warning: cedet-called-interactively-p called with 0 arguments, but requires 1' error repairing
         참고#2. lisp코드중에서 load file 하는 부분을 나같은 경우는(load-file "~/.emacs.d/cedet/common/cedet.el")과 같이 적었다. 경로의 ~/는 나는 윈도우에서 cygwin을 통해서 emacs를 쓰고 있어서 환경변수 HOME의 경로를 저렇게 표현할 수 있다.
         참고#1. 나같은 경우, 경로를 써넣는 부분을 아래와 같이 작성하엿다.
  • ExtremeProgramming . . . . 6 matches
         초기 Customer 요구분석시에는 UserStory를 작성한다. UserStory는 추후 Test Scenario를 생각하여 AcceptanceTest 부분을 작성하는데 이용한다. UserStory는 개발자들에 의해서 해당 기간 (Story-Point)을 예측(estimate) 하게 되는데, estimate가 명확하지 않을 경우에는 명확하지 않은 부분에 대해서 SpikeSolution 을 해본뒤 estimate을 하게 된다. UserStory는 다시 Wiki:EngineeringTask 로 나누어지고, Wiki:EngineeringTask 부분에 대한 estimate를 거친뒤 Task-Point를 할당한다. 해당 Point 의 기준은 deadline 의 기준이 아닌, programminer's ideal day (즉, 아무런 방해를 받지 않는 상태에서 프로그래머가 최적의 효율을 진행한다고 했을 경우의 기준) 으로 계산한다.
          * AcceptanceTest: 사용자 관점에서 해당 작업산출물이 제대로 돌아가는지 확인할 수 있는 테스트.
         ...여기에서의 XP 와 관련된 글들의 경우도 XperDotOrg 쪽으로 옮기는건 어떨까 궁리. (Interwiki 로 옮기고, ZP 에서는 ZP 내의 토론으로 대신할 수 있을듯. 자료가 어디에 있느냐는 그리 중요하지 않을 것이니. XperDotOrg 가 상용사이트나 CUG 가 되는게 아닌이상) 사람들 의견은? --["1002"]
  • Gof/Adapter . . . . 6 matches
         다음과 같은 경우에 AdapterPattern를 이용한다.
          * 이미 만들어져 있는 클래스를 사용하고 싶지만, 인터페이스가 원하는 방식과 일치하지 않을때.
          * 관련성이 없거나, 예측하지 못한 클래스들과 협동하는 재사용가능한 클래스를 생성하기 원할때. 이 경우 클래스들이 호환성을 가지는 인터페이스를 필요로 하지 않는다.
          * (object adapter 의 경우에만 해당) 현재 이미 만들어진 여러개의 subclass가 필요한 경우, 하지만 각각의 서브클래스들에 대한 인터페이스를 하는 것은 비효율적이다. 이 경우 parent class의 인터페이스를 adapt 할 수 있다.
  • Gof/State . . . . 6 matches
         커넥션이 상태를 전환할 경우, TCPConnection 객체는 사용하고 있는 state 객체를 바꾼다. 예를 들어 커넥션이 established 에서 closed 로 바뀌는 경우 TCPConnection 은 현재의 TCPEstablished 인스턴스를 TCPClosed 인스턴스로 state 객체를 교체한다.
         다음과 같은 경우에 StatePattern 을 이용한다.
          * 객체의 행위가 객체의 상태에 의존적일때. 그리고 객체가 run-time 시에 상태에 따라 행위를 바꾸어야 할 경우.
          * 객체의 상태에 대한 처리를 위해 구현하는 다중 조건 제어문이 거대해질 경우. 이 상태들을 일반적으로 하나나 그 이상의 열거형 상수들로 표현된다. 종종 여러 명령들은 객체 상태에 따른 처리를 위해 비슷한 유형의 조건 제어와 관련한 코드를 가지게 된다. StatePattern 은 각각의 조건분기점들을 클래스로 분리시킨다. 이는 객체의 상태들을 다른 객체로부터 다양하게 독립적일 수 있는, 고유의 권리를 가지는 객체로서 취급하도록 해준다.
          * context는 request를 다루는 State 객체에게 인자로서 자기 자신을 넘길 수 있다. 이는 필요한 경우 State 객체들로 하여금 context 에 접근할 수 있도록 해준다.
  • HelpOnFormatting . . . . 6 matches
         한 단락 내에서 강제로 줄 바꿈을 하고 싶은 경우에는 {{{[[BR]]}}}를 씁니다.[[BR]]이것은 위키위키의 고급 기능에 속하는 [매크로문법] 입니다.
         이 경우 모든 위키 문법은 무시되고 있는 그대로를 보여주게 됩니다.
         /!\ 모인모인은 {{{^MoinMoin 윗첨자^}}} 라고 하면 윗첨자가 되지만 모니위키는 공백이 없어야 합니다. 공백이 있는 경우에는 {{{^^모니위키는 이렇게^^}}} ^^모니위키는 이렇게^^ 하시면 됩니다.
         /!\ 모인모인의 경우에는 여러줄에 걸쳐있는 경우에도 이러한 기본 문법이 적용되지만, 모니위키의 경우 기본 문법은 반드시 한줄에 대해서만 적용됩니다.
  • JUnit/Ecliipse . . . . 6 matches
         왼쪽의 Workspace 에 붉은색 상태바가 나타나며 3개의 Error가 발생합니다.
         Error 의 발생합니다.
         다시 Run을 하면 Error가 두개로 줄었음을 알 수 있습니다.
         나머지 두개의 Error는 JUnit이 모든 테스트를 독립적으로 실행하기 때문에 발생하는 것 입니다.
         다시 실행을 하시면, 왼쪽의 상태바가 녹색으로 나타나는 것을 확인 할 수 있습니다.
         각각의 메서드를 독립적으로 테스트하기 때문에 일어나는 에러를 확인할 수 있는 부분이 되겠지요.
  • JavaNetworkProgramming . . . . 6 matches
          *동기화의 효율 : 대부분의 경우 동기화 작업은 매우 중요하며, 때로는 적대 생략해서는 안되는 경우도 있다. 그러나 불필요한 동기화 작업은 프로그램의 수행 성능을 떨어뜨리고, 재사용성을 감소시키며, 프로그램이 교착 상태에 빠지게 할 수도 있다.
          execution = null; //쓰레드가 크리티컬 섹션을 수행하는 도중 이 메소드가 호출되는 경우,중요한 데이터에 다른 쓰레드가 영영 접근할수 없는
          } //경우가 생길 수도 있다. 따라서 stop() 메소드를 사용하는 대신 쓰레드 자신의 종료상태를 인지하고, 수행을 중지하는 플래그
          *효과적인 다중 쓰레딩 : 자바에서 쓰레드를 생성하는 것은 매우 느린 작업이며 일부 자바 가상 머신은 쓰레드에 관련된 메모리 누스 때문에 고생하기도 한다. 따라서 효과적인 쓰레딩을 위해서는 새로 쓰레드르 생성하는 것 보다 이전에 생성했던 쓰레드 객체를 재사용하느 것이 좋다 진보된 형대의 자바 가상 머신에서는 시스템 레벨에서 이러한 쓰레드 재사용을 지원하기도 하지만, 이경우조차도 쓰레드를 재상용하는 방식을 사용하면 여러가지 이점을 얻을수 있다. --예제는 17장쯤에..
          System.out.flush(); //버퍼에 저장된 모든 데이커가 출력되었음을 확인하는 의미에서 스트림을 flush시킨다.
  • LUA_3 . . . . 6 matches
         [ if 조건 then 참인 경우 else 조건이 거짓인 경우 end 로 끝냄 ]
         만약 조건이 복수인 경우에는 아래와 같습니다.
         [ if A 조건 then A 조건이 참인 경우 elseif B 조건 then B 조건이 참인 경우 end ]
         [ repeat 조건이 거짓일 경우에 반복 될 명령문 until 조건 ]
  • MFC_ . . . . 6 matches
         7. [Error 발생시 풀리지 않을 경우 확인]
  • MySQL . . . . 6 matches
         ZeroPage Server의 경우 MySQL의 자료 저장 디렉토리가 {{{~cpp /var/lib/mysql}}} 이므로 해당 디렉토리 내의 자료를 복사 하는 것으로 가능하다. 복사중 mysql을 정지 시키는 것을 권장한다.
         === 개인 암호 변경 방법 ( 전자가 안될 경우 후자로 변경) ===
         === 관리자의 경우 ===
         MySQL에서 한글이 들어간 문자열을 제대로 정렬하려면 char 타입이 아닌 char binary 타입을 쓰면 됩니다. 하지만 이미 char 타입으로 되어있다면 ORDER BY BINARY 필드명 을 사용하면 됩니다. MySQL에서 char 타입은 순수한 아스키(0~127) 값에서만 제대로 동작합니다. 물론 char 타입을 쓴다고 해서 한글이 저장되지 않거나 하는건 아니지만, 검색이나 정렬등에서 제대로 작동하지 않는 경우가 있습니다. --["상규"]
         MySQL 에서 다른 데이터베이스로 데이터를 옮길 경우 기존 데이터중 문제가 되는 것이 바로 내장함수인 PASSWORD 를 이용해서 암호화를 한 부분이다. 다른 데이터베이스에서 이 데이터를 쓸 방법이 없기 때문이다. 이 경우, 로직 단에서 MySQL의 Password 함수를 대신 구현해줌으로서 해결을 할 순 있다.
  • NSIS . . . . 6 matches
         보통 프로그램을 개발하고 나서 '만들었다' 로 끝나는 경우가 많다. 하지만, 정작 배포때에는 할일이 많다. 특히 제어판 프로그램 등록/삭제 에 등록되는 방식이라던지, 레지스트리를 건드린다던지, Program Files 폴더에 복사한다던지. 이 경우에는 보통 전용 Installer 프로그램을 쓰게 되지만, 아직 제대로 써본 적이 없었던 것 같다.
          1 : errors only
          2 : warnings and errors
          3 : info, warnings, and errors
          * /NOCONFIG - nsisconfi.nsi 을 포함하지 않는다. 이 파라메터가 없는 경우, 인스톨러는 기본적으로 nsisconf.nsi 로부터 기본설정이 세팅된다. (NSIS Configuration File 참조)
          * 하나의 command 가 여러줄을 이용하는 경우 '' 를 사용한다.
         regsvr32.exe 로 dll 을 unregister 한 다음에 전체 폴더를 삭제할 때, regsvr32.exe 는 Exec 가 아닌 ExecWait 로 실행해주어야 한다. (그렇지 않으면 해당 dll 이 unregister 되기 전에 dll 화일이 delete 되어 정상적인 uninstall 이 되지 않을 수도 있다.)
         === NSIS 에서 특정 Process 가 살아있는지 여부 확인 ===
  • ProjectPrometheus/UserStory . . . . 6 matches
         ||책에 대한 구체적인 정보를 확인할 수 있다. ||
         ||Best Book (Rating, 책 정보 열람에 따른 점수 기준)을 확인할 수 있다. ||
         ||새로 들어온 책을 분야별로 확인할 수 있다. ||
          * Best Book (Rating, 책 정보 열람에 따른 점수 기준)을 확인할 수 있다.
          * 새로 들어온 책을 분야별로 확인할 수 있다.
          * 책에 대한 구체적인 정보를 확인할 수 있다.
  • Robbery/조현태 . . . . 6 matches
          경우의 수가 여러가지 나오는 경우를 어떻게 처리할까 고민했는데.. 못찾은 걸로 할까? 아니면 답으로 간주해서 출력할까? 하다가, 이 경우는 못찾은 걸로 처리하였다. ( "Nothing known." 으로 출력된다. )
          '명확한 경우' 에 속하지 않기때문에..^^
          이전의 경우 도둑이 특정시간에 존재할 수 없는경우 "The robber has escaped." 를 출력했으나, 지금은 모든 시간의 움직임을 고려해서 존재하지 않으면 "The robber has escaped."를 출력하도록 수정하였다. (사실 소스상에선 그다지 바뀐건 없다..^^)
  • SoJu/숙제제출 . . . . 6 matches
         //이프로그램은 정수를 입력받은뒤 1-9사이일 경우에만 구구단을 출력하고,
         //아닐경우에는 다시 숫자를 입력 받는 프로그램입니다.
          if ( j>=1 ) //입력받은 숫자가 1이상인지를 확인합니다.
          if ( j<=9 ) //입력받은 숫자가 9이하인지를 확인합니다.
          printf ("숫자가 너무 큽니다. 1-9사이의 정수를 입력해주세요~\n"); //입력받은 숫자가 9초과일경우의 오류메시지를 출력합니다.
          printf ("숫자가 너무 작습니다. 1-9사이의 정수를 입력해주세요~\n"); //입력받은 숫자가 1미만일경우의 오류메시지를 출력합니다.
  • SoftwareEngineeringClass . . . . 6 matches
          * 수업에서 원하는 것을 얻지 못하는 경우 수강은 하되 독학 혹은 학생 차원의 그룹 스터디를 할 것을 강력하게 권한다. 졸업 후 어디를 가건 두고 두고 유용하게 쓰일 것이다. 외국 유명 대학 경우 AOD/VOD로 수업 내용을 볼 수 있는 곳이 많이 있다.
         ["1002"]: 분야가 너무 넓다. 하루 PPT 자료 나아가는 양이 거의 60-70장이 된다. -_-; SWEBOK 에서의 각 Chapter 별로 관련 Reference들 자료만 몇십권이 나오는 것만 봐도. 아마 SoftwareRequirement, SoftwareDesign, SoftwareConstruction, SoftwareConfigurationManagement, SoftwareQualityManagement, SoftwareProcessAssessment 부분중 앞의 3개/뒤의 3개 식으로 수업이 분과되어야 하지 않을까 하는 생각도 해본다. (그게 4학년 객체모델링 수업이려나;) [[BR]]
          * 지금 듣는 사람들의 이야기를 들어서는 실습을 하는 과정이 투자하는 시간에 비해서 얻는 것이 좀 적은 것 같다는 생각들을 많이하던데... 실제로 팀을 이룬 사람들중에서 실무를 확실하게 경험해 보지 않은 사람들만 있는 경우에는 이게 더 심하다고 합니다. 전 내년에나 이거 들을 차례가 올것 같은데... 이경환 교수님께서도 이번을 마지막으로 하신다고 하고... 이 과목을 반드시 들어야하나 그런 생각도 좀 드네요. 저의 경우에는 이걸 청강(or 도강;;)식으로해서 이론적인 것을 듣고, 그냥 DB, PL을 들으려고하는데.. 어떨지 모르겠네요. (그런데 컴파일러 과목은 언제 생기는 거지 ㅡㅡ;;) - 박영창
          * 저희 반 같은 경우에는 현재 컨설팅을 하고 있는 박사과정 선배님이 수업을 맡고 있죠. 가끔가다가 자신이 컨설팅 하는 경험담을 들을 수 있어서 좋다고 생각합니다. 교수님반보다 프로젝트 실습 과정에서 피드백도 더 많은 편이고요. 사실 개인적으로는 소프트웨어 공학에서 요구하는 내용을 경험한 사람이 많지 않기 때문에, 더 자주 피드백이 필요하다고 느끼지만요.
  • XMLStudy_2002/XML+CSS . . . . 6 matches
          *그리고 위와 같이 HTML 네임 스페이스를 지정한 경우에는 <HTML : A> 뿐 아니라 다른 HTML의 태그들도 HTML 네임 스페이스의 Prefix를 붙여 사용할 수있다.
         사용한 경우, XML 문서를 Parser를 통해 파싱한 뒤
          : 이 XML 문서에서 스타일 선언한 부분의 위치를 확인해보시면 됩니다.</PA>
         <PA>A. IE5에서는 스타일이 지정되지 않은 경우에는 자신이 제공하는 디펄트
         스타일이 지정안된 문서 보기예입니다. IE5의 디펄트 스타일을 확인해볼 수 있습니다.
         <PA>비 상업적인 목적으로 수정하거나 배포하는 경우에도 저자와의 협의가 있어야 합니다.</PA>
  • XpQuestion . . . . 6 matches
          ''Xper 에서 비슷한 기능을 하는 페이지가 '질문답변' 인데, 이 페이지같은 경우는 직접 질문하고 답을 쓴거여서 '질문답변' 에 올리기가 좀 그렇더라구요 Faq 라는 페이지를 만들까 하다가 좀 주관적인 답이여서 그렇고. Xper 에서 페이지 제목 궁리하다가 그냥 일단 여기 만든거라는. ^^; (Xper 에도 올립니다. 페이지들 별로 녹여넣어야겠군요.) --["1002"]''
         어디선가 이야기 나왔었던 문제. 규모가 되는 프로젝트의 경우 100 장의 Index Card 는 보관하기도 어렵고 널려놓기엔 정신을 어지럽힌다.;;
         실제 회사 : 회사 로 수주받은 프로젝트의 경우, 다른 회사에서 오는 '고객' 은 실제로 그 회사에서의 말단 직원인 경우가 많다. 그러므로, 매 Iteration 시 고객에게 Story 를 골라달라고 할때 그 고객은 힘이 없다.
         과연 40시간 작업이란 가능한 일인가? 보통은 밤을 새어도 일을 못하는 경우가 많은데.
         늘 지속할 수 있는 안정적인 흐름을 만들어내는 것이 중요하다. '40' 숫자가 중요하단 뜻은 아니다. (단, PairProgramming 이 기가막히게 잘 진행되는 경우는, '40시간을 초과' 할 수가 없을 것 같다. 사람 진이 다 빠지니까. -_-;)
  • ZeroPageServer/SubVersion . . . . 6 matches
          제로페이지의 사용자 계정이 있다면 누구나 사용이 가능하다. 대신에 로컬에는 ssh의 클라이언트(커맨드 기반)가 필요하다. (그렇지만 그룹설정이 필요하기 때문에 관리자에게 그룹으로 설정해달라고 해야합니다. 그룹이용자가 아닌 경우에는 저장소를 읽을 수는 있지만 쓰기는 하지못한다.)
          * SSH를 통해서 접근을 하는 경우 상당히 잦은 패스워드 입력 창을 보게됩니다. 이를 해결하기 위해서 몇가지 방법이 존재하는데.. ''(터널링 프로토콜로 SSH를 이용하기 때문에 어찌하였던 SSH 프로그램을 등록해야함.)''
          상기의 방법의 경우에는 암호가 그대로 저장되기 때문에 본인의 컴퓨터가 아닌 상황에서는 피하는 것이 좋습니다.
          확인절차없이 바로 사용이 시스템에 접속하게 된다.
          확인해서
          옵션이 ssh 데몬에 활성화된 상태인지를 확인하면 된다.
  • django/Model . . . . 6 matches
         모델은 웹 어플리케이션에서 사용할 데이터를 명세한 python소스코드이다. 모델은 데이터베이스와 연동되며, 간단한 경우 모델 하나가 데이터베이스 테이블 하나로 매핑된다. 따라서 웹 개발자는 데이터베이스를 직접 손대지 않고 소스코드인 모델을 변경해가면서 작업을 진행할 수 있다. 모델을 변경할 때마다 django에서 제공하는 manage.py syncdb를 이용하면 변경된 모델이 데이터베이스 테이블에 반영된다.
         모델은 사용자가 지정하지 않는 경우 기본적으로 id라는 이름으로 정수형 주키를 가진다.
         모델에 해당하는 테이블을 생성하는 SQL문은 {{{python manage.py sql <app name>}}}으로 확인할 수 있다. 위에 해당하는 SQL문은 다음과 같다.
         다 대 다 관계에서는 어느 한 쪽 모델에 다 대 다 관계임을 표현한다. 하지만 양쪽 모두에 다 대 다 필드를 설치하면 안된다. Django는 다 대 다 관계인 경우 이를 표현하는 테이블을 자동으로 생성한다. 다음은 Employee와 Deparment모델 사이에 다 대 다 관계를 나타내고 있다.
         다대다 관계는 좀더 복잡해질 수 있다. 두 모델 사이에 관계에 해당하는 테이블이 또다른 속성이 필요한 경우이다. 이 때는 중간 역할을 하는 모델을 직접 생성하고 양쪽 모델을 참조하도록 만든다. 다음은 RiskReport와 ControlReport사이 다 대 다 관계에서 보고된 위험에 대해서 대처 방안이 적절했는지 평가하는 is_vaild속성을 가지는 RiskControl모델을 보여주고 있다.
         하지만 이 경우 risk_report와 control_report의 합성키를 사용하도록 지원하지 않는다.
  • gusul/김태진 . . . . 6 matches
          * 문제를 단순화하여, 앞으로 홀수번 시행이 최적인 경우, 지금 하는 사람이 승리하게 된다. 이를 이용하여 n-1번째 시행에서(지는 시점을 첫번째로 하여 거꾸로 올라간다.) n번째로 올 때 모두 홀수인 경우에만 해당 시점의 사람이 지게되는데 (1,3,5번에서 7번으로 갈 수 있는데 1,3,5번의 시행횟수가 모두 홀수개) 하나라도 짝수에서 오는 경우가 있으면 그 경우가 상대방이 무조건 지는 경우이므로 최선이다.
          * n-1번째에 하나라도 짝수 경우가 있으면 n번째에서 n-1로 만들 때 짝수로 만들 수 있으므로 이기게된다.
  • zennith/w2kDefaultProcess . . . . 6 matches
         관리자를 실행해서 확인할 수 있다.
         가 정상적으로 이루어지는 경우엔 시스템이 종료하고 그렇지 않은 경우엔 시스템을 반
         확인하려면 윈2000 CD에 있는 Tlist.exe를 이용하면 되고 구문은 명령 프롬프트에서
         세싱하지 않을 때 프로세서 타임을 관리하는 역할을 수행한다. 작업관리자에서 이 프
         결될 경우 또는 관리 응용프로그램이 서비스를 요청할 때 초기화된다.
  • 데블스캠프2005/게임만들기/제작과정예제 . . . . 6 matches
          // 블럭이 움직일 수 있는가를 판단한다. 못 움직일 경우에는 1을 리턴하고 종료한다.
          //블럭이 벽에 닿는지, 충분한 공간이 있는지를 확인한다.
          일반적으로 for문을 이용해서 한줄을 검색할 수 있으나, 같은 내려온 블럭이 같은색으로 처리되는 경우는, 더해서 숫자가 일치하는지를 볼 수도 있다.
          if (9==i) //블럭이 다 차있을 경우에는 한줄을 삭제한다.
          점수는 블럭이 내려올때, 삭제될때 등으로 증가되는 경우를 정하고, 그 경우마다 알맞은 값을 증가시켜 주면된다.
  • 데블스캠프2008/등자사용법 . . . . 6 matches
         확인
         한번에 여러개에 집중하는 건 시간상 불가능한 경우가 많다
         이 사이를 조절하는 게 중요하지 않을까?
         몰입이 잘 되고, 적당히 도전적이고, 재미있고, 교육적이고... 많은 경우 이 표현들은 다 동의어입니다(see also 재미있게 공부하기). 어려운 일을 대면했을 때 "오히려 더 많이 하면서 더 쉽게, 더 빨리 할 수 있는" 길은 없나 자문해 보세요. 꼭 프로그래밍에만 적용되는 이야기는 아닐 것입니다.
         많이 해서 더 빨리 하는 경우와 그 근본 원리는 같은데, 좀 다른 법칙으로 "순서를 바꾸면 같은 일도 훨씬 쉽게 또 빨리 할 수 있다"는 게 있습니다(제가 경험적으로 만들었습니다). 하려던 일들의 집합은 유지하지만 그 속에서 순서를 바꾸는 겁니다.
         우선 내가 누구인지 먼저 확인해야겠다.
  • 데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/김동준 . . . . 6 matches
          // 들어온 데이터의 신뢰성을 체크하는 함수. 신뢰성이 없는경우 False 반환
          if(isSkipData(wordTmp)) {continue;} // 1글자Data, 사이트, 블로그, 페이지 주소의 경우 연관성및 신뢰성이 떨어지므로 검색에서 제외
          else { this.sectionWord.put(wordTmp, this.sectionWord.get(wordTmp)+1); } // 있는경우 자신의 것에 갯수를 한개 더 추가
          // 특정 단어의 갯수를 반환, 없는경우 1 반환
          //해당 기사에 대한 연산 결과를 반환하는 함수. 양수일 경우 해당 Index Section 에 일치하는 기사로 판단한 것이며, 음수일 경우 해당 Index Section 에 일치하지 않는 기사라고 판단한 것이다.
  • 새싹교실/2012/AClass . . . . 6 matches
          * 6주차(6/13) - 1~5주차를 소화하지 못 할 경우를 위한 한 주.
          * 방학 중에 스터디를 할 경우 - Class, Object + Tree, Graph
          * 성적 계산기의 경우 90점이상 A, 80점이상 B와 같은 구조입니다. 100점만점을 10으로 나누면 switch문으로 풀 수 있습니다.
          * 이 과제가 무슨 말인지 이해가 안되는 경우 반드시 저에게 물어보고, 과제를 해야합니다.
          3.문자열이 대칭인경우 Palindrome, 아닌경우 Not Palindrome을 출력하는 프로그램을 작성해봅시다.
  • 영어학습방법론 . . . . 6 matches
          '일반영어공부론'의 경우는 [http://board2.cuecom.net/arumari2.html?id=beachboy 임병준님 홈페이지] 에 있습니다. 영어세미나 내용의 경우 전체적인 큰 틀은 비슷하나, 사람들의 질답내용에 따른 답변의 차이가 있었습니다. --[1002]
          * 단어들간의 간섭현상으로 헷갈리는 경우 발생. 따라서 암기력 저하. ex) 동의어, 반의어.
          * 흔히 영문을 읽을때 의미가 제대로 파악이 안되는 경우 대부분 단어를 몇가지로만 해석하기 때문 입니다.
          ex) 고전물리학에서 양자물리학을 공부하려고 할 경우. 분명 고전물리학과 양자물리학이 접하는 부분이 있다. 이것을 완전하게 공부하면 아는 부분과 모르는 부분과의 접경부분이 넒어진다. 계속해서 이렇게 공부하면서 접경부분의 범위를 늘이면서 공부한다.
          * 영어 단어 암기를 단어장으로 하는 경우
  • 졸업논문/본론 . . . . 6 matches
         웹 애플리케이션 개발자가 가장 많이 쓰는 기능은 SQL을 이용하여 데이터베이스 내용을 삽입, 삭제, 수정, 조회하는 것이다. 그 중에도 데이터를 조회하는 SQL문은 다양한 구조를 가진다. 기본 구조는 select from 이다. 여기서 from절에 테이블이 여러 번 나오는 경우 조인 연산을 수행한다. 조인 연산은 다른 테이블 또는 같은 테이블끼리 가능하다. select from where문을 사용하면 where절에 있는 조건을 만족하는 데이터만 조회한다. aggregate function을 사용하면 원하는 결과를 좀더 쉽게 얻을 수 있다. 이에는 개수(count), 합계(sum), 최소(min), 최대(max), 평균(avg)이 있다. aggregate function에 group by문을 사용하면 그룹 단위로 결과를 얻는다. group by절에는 having을 이용해 조건을 제한할 수 있다. 또한 순서를 지정하는 order by문과 집합 연산인 union, intersect, except 등이 있다. where절 이하에 다시 SQL문이 나타나는 경우를 중첩질의라고 한다. 중첩 질의를 사용할 때는 특별히 (not) exist, (not) unique와 같은 구문을 사용할 수 있다.
         Django는 오픈 소스 프로젝트로 code.djangoproject.com/browser/django 에서 전체 소스코드를 확인할 수 있다. 문서에 따르면 django 데이터베이스 API는 "SQL문을 효율적으로 사용하고, 필요할 때는 알아서 join연산을 수행하는 강력한 구문을 가졌으며, 사용자가 필요할 경우 직접 SQL문을 작성할 수 있도록 지원"[5]한다. 추상화된 구문을 사용하더라도 데이터는 관계형 데이터베이스에 저장하게 되는데, MS SQL, MySQL, Oracle, PostgreSQL, SQLite3와 같은 DBMS를 사용할 수 있다.
         Django의 설계 철학은 한 마디로 DRY(Don't Repeat Yourself)이다. 확연히 구분할 수있는 데이터는 분리하고, 그렇지 않은 경우 중복을 줄이고 일반화한다. 데이터 뿐 아니라 개발에 있어서도 웹 프로그래밍 전반부와 후반부를 두 번 작업하지 않는다. 즉 웹 애플리케이션 개발자는 SQL을 사용하는 방식이 도메인 언어에 제공하는 프레임워크에 숨어 보이지 않기 때문에 프로그램을 동적으로 쉽게 바뀔 수록 빠르게 개발할 수 있다. 또한 후반부 데이터 모델이 바뀌면 프레임워크에서 전반부에 사용자에게 보이는 부분을 자동으로 바꾸어준다. 이러한 설계 철학을 바탕으로 기민하게 웹 애플리케이션을 개발할 수 있다.
         레코드를 검색할 때는 기본적으로 간단한 질의를 처리할 수 있는 함수들을 제공한다. 앞서 살펴본 바와 같이 직접 관계를 가지는 테이블 사이에 조인 연산은 Model클래스의 메소드를 이용해서 추상화되어 있다. 하지만 그 밖인 경우에는 직접 SQL문을 작성하여 데이터를 얻어와야 하기 때문에 django를 사용하더라도 큰 이점이 없다. 또한 추상화된 Model클래스의 메소드는 기본적으로 모든 레코드 속성을 읽어오기 때문에 시간, 공간 측면에서 비효율적일 수 있다. 마지막으로 SQL의 aggregate function등을 대부분 추상화하지 않았기 때문에, 이 역시 SQL문을 작성해야 하는 번거로움이 있다.
  • 토비의스프링3/오브젝트와의존관계 . . . . 6 matches
          * 앞서 만든 클래스가 제대로 동작하는지 확인하려면
          * UserDao 코드가 동작하는지 확인하기 위해 너무 복잡한 작업이 필요.
          * main() 메소드에 작성한 테스트로 확인해보니
          * 모든 변경과 발전은 한 번에 한 가지 관심사항에 집중해서 일어나지만 그에 따른 작업은 한 곳에 집중되지 않는 경우가 많다.
          * 스코프(scope) : 스프링이 관리하는 빈이 생성되고 존재하고 적용되는 범위. 빈의 기본 스코프는 싱글톤으로 컨테이너 내에 한 개의 오브젝트만 만들어져서 강제로 제거하지 않는 한 계속 유지된다. 경우에 따라서 싱글톤 외의 프로토타입(prototype), 요청(request), 세션(session)스코프 등을 가질 수 있다.
          * DI의 장점 : DI를 받았을 경우 주입된 오브젝트를 인터페이스로 받는데 이렇게 하면 코드에 런타임 클래스와의 관계가 직접 드러나지 않기 때문에 주입시 주입하는 오브젝트를 바꿔주는 것으로 코드의 변경, 확장에 쉽게 대응할 수 있다.
  • 3rdPCinCAUCSE/FastHand전략 . . . . 5 matches
         알고리즘을 위해 연습장을 썼습니다. B 문제와 A 문제는 이전에 같은 프로그램을 짜 본 경험이 있던 관계로 특별한 계산을 하지 않았으며, C 번 문제에 대해서 분석차 이용하였습니다. 그리고 테스트를 위해 예제 입력값들을 텍스트 화일로 미리 작성해두고, 도스창에서 이를 redirection, 결과를 확인했습니다. 이러한 방법은 특히 A 번 문제에서 큰 힘을 발휘했습니다. (A번 문제는 입력값이 오목판 전체 이기 때문이죠.) 결과에 대한 확인 테스트 시간이 1초도 걸리지 않았고, 테스트 인풋 데이터 만드는데도 거의 시간소요가 없었습니다.
         C 번의 경우는 일단 [geniumin] 군이 초기 분석 & 알고리즘을 만들고 중반에 [1002]군이 pseudo-code 화, 후반 알고리즘 검산 & 알고리즘 수정에 대해서 [geniumin] & [경태]군이, 구현은 pseudo code 를 만들던 [1002]가 했습니다.
         그동안 [경태]는 A 번 구현 완료. 테스트 데이터를 위해 editplus 로 입력데이터를 test.txt로 작성. DOS 창에서 redirection 으로 프로그램 실행 & 결과 확인. 중간에 5목이 일어난 부분의 첫 위치를 파악하는 부분에서는, 해당 오목 판정결과 함수에서 판정 방향값을 리턴해주는 형태로 함수를 수정, 이를 근거로 첫 위치를 구했습니다.
         테스트 예제 값들은 잘 통과했는데, 실제 가서 확인해보니 약간 차이가 나는 input 이 있었는듯.
  • ACM_ICPC/2013년스터디 . . . . 5 matches
          * 풀이 - 삼차원 테이블을 사용한 DP문제, d(bar,unit,width)는 bar번째의 bar를 사용하면서, unit의 위치에 그 bar의 폭이 width일 때의 경우이다. 따라서 가능한 모든 바코드의 수를 구하는 것은 d(bar,unit,0 ~ width)를 전부 더해주면 된다.
          - 설명하면 1110110 이라는 것이 있을 때, 1110110이 오기 전에는 110으로 시작하는 모든 바코드가 있을 것이고, 그 이전에는 10으로 시작하는 모든 바코드가 있을 것이다. 그리고 1110110이라는 바코드가 오기 전에는 111000으로 시작하는 모든 바코드가 있을 것이고, 그 이전에는 11100으로 시작하는 모든 바코드가 있을 것이다. dp테이블에 해당 경우에 대한 경우의 수를 모두 저장해놨기 때문에, 앞에서 부터 차례대로 이전에 올 바코드의 수를 더해나가면 index를 구할 수 있다.
          * 풀면서 주의할 점 : dp테이블의 범위에 벗어나는 경우(예를 들어서 음수 번지)가 나올 수 있으므로 이에 대한 처리를 해줘야 한다. 비쥬얼 스튜디오에서 코드를 작성할 때, 테이블 범위에 벗어나도 정답이 나오는 경우가 생겨서 이런 예외를 발견하기 힘들었음..
  • Adapter . . . . 5 matches
         DP의 p147을 보면 '''Adapter'''클래스는 반드시 그것의 '''Adaptee'''를 타입으로 선언해서 가지고 있어야만 한다.이런 경우에는 해당 클래스와 그것에서 상속되는 클래스들만이 기능을 사용(adapt)할수 있다. Smalltalk에서 엄격한 형검사(Strong Typeing) 존재 않으면, class 가 '''Adapter'''에서 '''Adaptee'''로 보내어지는 메세지를 보낼수 있는 이상 '''Adaptee'''가 어떠한 클래스라도 상관없을 것이다. [[BR]]
         자 그럼 Adapter를 적용시키는 시나리오를 시작해 본다. ''Design Patterns''(DP139)에서 DrawingEditor는 그래픽 객체들과 Shape의 상속도상의 클래스 인스턴스들을 모아 관리하였다. DrawingEditor는 이런 그래픽 객체들과의 소통을 위하여 Shape 프로토콜을 만들어 이 규칙에 맞는 메세지를 이용한다. 하지만 text인자의 경우 우리는 이미 존재하고 있는 TextView상에서 이미 구현된 기능을 사용한다. 우리는 DrawEditior가 TextView와 일반적으로 쓰이는 Shape와 같이 상호작용 하기를 원한다. 그렇지만 TextView는 Shape의 프로토콜을 따르지 않는 다는 점이 문제이다. 그래서 우리는 TextShap의 Adapter class를 Shape의 자식(subclass)로 정의 한다. TextShape는 인스턴스로 TextView의 참조(reference)를 가지고 있으며, Shape프로토콜상에서의 메세지를 사용한다.; 이들 각각의 메세지는 간단히 다른 메세지로 캡슐화된 TextView에게 전달되어 질수 있다. 우리는 그때 TextShape를 DrawingEditor와 TextView사이에 붙인다.
         Adapter시나리오의 두번째는 Adaptee의 인터페이를 디자인 시간에 알수 없을 때 이다. Adaptee의 인터페이스를 먼저 알수 없기 때문에 우리는 하나의 인터페이스에서 다른 것으로 메세지를 간단히 해석할수 없다. 이런 경우에는 메세지의 변형과 전달의 일반적 규칙에 맞추어 Pluggable Adapter를 사용한다. Tailored Adapter와 같이 Pluggable Adapter도 해석기를 Client와 Adaptee사이의 해석기를 제공한다. 하지만 각각의 특별한 경우를 위한 새로운 Adapter클래스의 정의를 필요하지 않다. Pluggable Adapter가 쓰이는 경우의 상태를 생각해보자
  • CollectionParameter . . . . 5 matches
         즉, 두 메소드의 결과를 모으는 경우인데, 그리 흔한 경우는 아니였던걸로 기억. 약간은 다르긴 하지만 나의 경우 CollectionParameter 의 성격으로 필요한 경우가 read/write 등 I/O 가 내부적으로 필요할때 또는 Serialization 등의 일이 필요할때. 그 경우 I/O 부분은 Stream 클래스로 만들고(C++ 의 Stream 을 쓰던지 또는 직접 Stream 클래스 만들어 쓰던지) parameter 로 넘겨주고 그 파라메터의 메소드를 사용하는 형태였음. --[1002]
  • D3D . . . . 5 matches
         - 특정한 점 p에 존재하는 개체를 z축을 따라 회전시키려는 경우 -
         두 가지 회전, 즉, A와 B를 수행해야 할 경우 결합 법칙에 따라 다음과같이 할 수 있다.[[BR]]
         간단히 적을 따라가는 것. 뭐 알고리즘 같은건 있지도 않을것 같다. [[BR]]
          * 야외의 경우와 같은 물리적 장애물이 드문 경우에는 잘된다.
  • Debugging/Seminar_2005 . . . . 5 matches
          * 디버깅은 주로 구문적인 에러보다는 컴파일은 되더라도 자신의 의도한 값이 나오지 않을 경우에 많이 한다.
          * 많이 변경된 상태에서 컴파일 할 경우 버그들이 복합되어져서 보이기 때문에 찾기가 더 힘들다.
          * 테스트를 많이 해야할 경우에 테스트 케이스를 만들어서 테스트 시간을 절약한다.
          * 버그 리포트 작성 -> 이건 준비자도 안해봤다. 프로젝트가 좀더 커질 경우 이런 게 필요하다고 한다
  • EightQueenProblem/조현태 . . . . 5 matches
         하지만 아무도 이런 생각을 하지 않을듯..ㅎㅎ
          //세로확인
          //가로확인
          //대각선 확인
          //대각선 확인
  • EightQueenProblemDiscussion . . . . 5 matches
         만약 당신보다 더 짧은 시간에, 더 짧은 코드로 문제를 해결한 사람이 있다면, 그 사람과 함께 PairProgramming (혹은 NetMeeting 등을 이용, VirtualPairProgramming)을 해서 그 문제를 함께 새로 풀어보세요. 당신은 무엇을 배웠습니까? 그 사람은 어떤 방식으로 프로그램의 올바름(correctness)을 확인합니까? 그 사람은 디버깅을 어떻게 합니까(혹은 디버깅이 거의 필요하지 않은 접근법이 있던가요)? 그 사람은 어떤 순서로 문제에 접근해 갑니까? 그 사람은 어느 정도로까지 코드를 모듈화 합니까? 이 경험이 당신의 프로그래밍에 앞으로 어떤 변화를 불러올 것이라 생각합니까?
         그 다음에는 '퀸을 놓을 수 있는 위치가 안전한 곳일까?' 하는 점에 대해 접근. 이를 SelftyZone 이라 칭했다. 이를 체크하기 위해서는 가로/세로/대각선방향을 모두 체크해야 하므로 다시 4개의 작은 모듈로 나누어졌다. 그중 대각선 체크의 경우 처음 비교를 시작할 위치를 측정하기 위한 모듈을 하나 더 추출하게 되었다.
         해당 자리에 놓았을 경우. 다른 퀸을 공격할 수 있는 위치에 대해 알아보기 위한 부분에 대해 생각했다.
         자신에게 항상 "What is the simplest thing that could possibly work?"라는 질문을 하면서 TestDrivenDevelopment를 했나요? 테스트/코드 사이클을 진행하면서 스텝을 작게 하려고 노력했나요? 중간에 진척이 별로 없는 경우, 어떤 액션을 취했나요? 그 때 테스트 사이클의 스텝을 더 작게하려고 했나요? 만약 다시 같은 문제를 새로 푼다면 어떤 순서로 테스트를 하고 싶나요? (직접 다시 한번 새로 시작하는 것도 강력 추천) 왜 다른 사람들에 비해 시간이 상대적으로 많이 걸렸을까요? 테스트 코드를 사용한 것이 그 시간만큼의 이득이 있었나요? TestDrivenDevelopment를 해내가면서 현재 패스하려고 하는 테스트 케이스에서 무엇을 배웠나요? 켄트벡이 말하는 것처럼 사고의 도구가 되어 주었나요? 참고로 저는 EightQueenProblem을 파이썬으로 약 30분 정도 시간에 50 라인 이내로(테스트 코드 제외) 풀었습니다. TestDrivenDevelopment로요. --김창준
         즉, 실제 Queen의 위치들을 정의하는 재귀호출 코드인데요. 이 부분에 대한 TestCase 는 최종적으로 얻어낸 판에 대해 올바른 Queen의 배열인지 확인하는 부분이 되어야 겠죠. 연습장에 계속 의사코드를 적어놓긴 했었는데, 적어놓고 맞을것이다라는 확신을 계속 못했죠. 확신을 위해서는 테스트코드로 뽑아낼 수 있어야 할텐데, 그때당시 이 부분에 대해서 테스트코드를 못만들었죠.
  • Gof/Mediator . . . . 5 matches
         Object-Oriented 디자인은 객체들 사이의 행위 분산을 장려한다. 그런 분산은 객체들 사이에 많은 연관을 지닌 객체 구조로 나타날 수 있다. 최악의 경우에는 모든 객체가 결국 모든 다른 객체들을 알게 된다.
          1. 추상 Mediator 클래스 생략하기. 추상 Mediator 클래스를 선언할 필요가 없는 경우는 colleague들이 단지 하나의 mediator와만 작업을 할 때이다. Mediator클래스가 제공하는 추상적인 coupling은 colleague들이 다른 mediator subclass들과 작동학게 해주며 반대의 경우도 그렇다.
         FacadePattern(185)은 보다 편리한 인터페이스를 제공하고자 subsystem의 객체들을 추상화시킨 Mediator와 다르다. 그것의 protocol은 간접적이다. 다시 말하면 Facade 객체들은 subsystem의 요청들을 만들지만 반대의 경우는 그렇지 못하다. 대조적으로 Mediator는 colleague들이 제공하지 못하거나 할 수 없는 협동적인 행위를 가능하게 해준다. 그래서 그 protocol은 multidirectional하다.
         예컨대, Seminar:ElevatorSimulation 에 여러가지 배우(엘레베이터, 사람, 층, ...)들이 존재할 경우, 사람은 층을 참조, 사용하고, 층은 다시 갖고 있는 사람을 참조하고, 엘레베이터는 사람을 참조, 사용하고 하는 식으로 복잡한 (순환) 의존관계가 존재한다. 이럴 때 MediatorPattern을 쓰게되면 이 복잡한 의존고리를 끊을 수 있다.
  • HelpOnConfiguration . . . . 5 matches
         MoniWiki는 `config.php`에 있는 설정을 입맛에 맛게 고칠 수 있다. config.php는 MoniWiki본체 프로그램에 의해 `include`되므로 PHP의 include_path변수로 설정된 어느 디렉토리에 위치할 수도 있다. 특별한 경우가 아니라면 MoniWiki가 설치된 디렉토리에 config.php가 있을것이다.
         모니위키의 몇몇 플러그인중 외부 프로그램을 사용하는 프로그램은 환경변수 PATH를 참조하여 외부 프로그램을 호출하게 된다. 이때 PATH의 설정이 제대로 맞지 않아 외부 프로그램이 제대로 실행되지 않는 경우가 있다. 이 경우 config.php에서 `$path`를 고쳐보라.
         윈도우에서 gvim을 사용하여 작동된다. 이 경우 {{{$path}}}설정을 제대로 해주어야 하는데, 예를 들어 다음과 같은 식으로 `config.php`에 설정을 한다.
         /!\ monisetup.php은 config.php를 변경할 수 있으나, 간단한 변경만 지원하고 세세한 변경은 지원하지 않는다. 최근 1.1.3 버전부터는 여러줄의 config.php 설정을 읽고 수정할 수 있다. 단, monisetup.php를 사용할 경우 코멘트는 모두 제거가 되므로 주의해야 한다.
  • HowBigIsIt?/하기웅 . . . . 5 matches
         일단 생각해야 될게 너무 많은 관계로 8!개 만큼의 경우의 수를 다 생각해야만 할 것 같다.
         그래서 열심히 팩토리얼을 이용하여 모든 경우를 계산하는 프로그램을 만들었음~~
         하지만 모든 경우를 만족하지는 못했다~~
         원을 배열하는 모든 차례를 따져보는 경우에서도 생각해야 될게 너무 많다.
         엄청 큰 원이 하나 있어서 그 아래의 공간에 모두 다른 작은 원들이 들어가버리는 경우가 생길 수 있다.
  • HowToBlockEmpas . . . . 5 matches
         ZeroWiki 는 ZP 내부작업을 위한 위키입니다. 아무래도 외부로 노출되었을 경우 여러 문제들이 발생할 수 있을 것입니다. (저번과 같은 크래킹의 문제도 있을테고요..)
         그 방법을 알아야 해결책이 나오지 않을까요?? -- 선호
          * empas 에 등록 철회를 요청한다. 만약 거부할 경우에는 무단링크로 처리 가능하다고 합니다. (거부당한 증거 필요) - 이에 대한 요청 방법 아시는 분?
          * 우리 모두 위키의 정신을 한 번 되세겨 보자. 위키는 자유공간인데 그걸 계정을 만든다느니 어짼다느니 한다는 건 위키의 정신에 위배되는 행위라고 본다. delete 하지 못하게만 한 것으로 충분하지 않을까 싶은데.... From X
         모든 페이지의 HTML 헤더에 meta NAME="ROBOTS" 을 설정해서 다는 걸로 해결이 되지 않을까 생각됩니다.
  • HowToDiscussIt . . . . 5 matches
         지금 이 경우, "어떻게" 토론을 진행할 지에 대한 합의가 되어있지 않은 상태이고, "무엇을"과 "어떻게"가 뒤섞여 있다. 이렇게 해서는 진도가 잘 나가지 않는다. 따라서, 양자를 분리한다.
         대부분의 경우, 먼저 의견을 일단 다 받아놓고, 각각의 장점을 다 이야기 하게 하고, 또 각각의 단점을 다 들어보고 하는 식으로 단계적으로 진행하는 것이 효율적이다.
         한꺼번에 토론을 하기엔 사람이 너무 많다. 내성적인 사람들은 많은 사람 앞에서 이야기 하기를 꺼린다. 혹시나 자신이 한 말이 남들에게 바보처럼 보이지 않을까 걱정한다. 특히 의견/질문을 내는 사람이 별로 없는 상황은 악순환을 거듭한다. 의견을 내는 사람이 없기 때문에 의견 내기가 어려워진다. 또한, 낮은 위치의 사람(저학년, 하급자, 경험이 적은 사람)과 높은 위치의 사람이 섞여 있는 경우, 낮은 위치의 사람은 무언의 압력을 느끼고 의견 개진을 어려워 한다. 보통 한 두 사람 말 많은(혹은 경험이 많은) 사람이 전체 토론을 주도하게 된다.
         이럴 경우 '''Subgroup''' 패턴을 사용한다. 사람 수가 적으면 참여도가 높아진다.
  • LIB_2 . . . . 5 matches
         이럴 경우 컴파일을 해 보면 펑션의 호출이 RET가 아닌 IRET로 끝나게 된다.[[BR]]
         그럴 경우 IRET 로 끝날 경우 [CS]:[IP] FLAGS를 스택에서 PUSH하게 된다.[[BR]]
         PS RET로 끝날 경우 [CS]:[IP]만 PUSH하게 된다.[[BR]]
         이 프로그램이 복귀 가능하게 만들 경우 TSR을 이용한다..근데 지금은 필요 없는듯...
  • LUA_1 . . . . 5 matches
         스크립트 언어는 이제 단순히 유행을 넘어서 개발자가 알아야 할 덕목에 가까워진 것 같습니다. 저 같은 경우 아직 C/C++/Java로 개발을 하지만 보조적인 역할에서는 스크립트 언어(Python)만큼 유용한 게 없는 것 같습니다.
         루아의 공식 사이트는 http://www.lua.org/ 입니다. 하지막 MS-Windows 환경에서 루아를 시작하고 싶으시다면 http://code.google.com/p/luaforwindows/ 에서 루아 프로그램을 다운 받으실 수 있습니다. 우선 MS-Windows 환경이라고 가정하고 앞서 말한 사이트의 Download 페이지에서 LuaForWindows_v5.1.4-45.exe 를 다운 받습니다. 나중에는 버전명이 바뀐 바이너리 파일이겠죠. 이 파일을 다운로드 받아서 설치하면 시작>Programs>Lua>Lua (Command Line) 를 찾아 보실 수 있습니다. 해당 프로그램을 실행하면 Command 화면에 ">" 와 같은 입력 프롬프트를 확인하실 수 있습니다. 그럼 간단히 Hello world를 출력해 볼까요?
         Hello World! 가 출력 되는 것을 확인하실 수 있습니다.
          둘째는 빠르다는 점입니다. 빠르다는 말은 상대적일 수 있는데, 다른 스크립트 언어에 비해서 빠르다는 뜻입니다. 예를 들면 Python 이겠죠. 자세한 내용은 http://lua-users.org/wiki/LuaVersusPython 페이지에서 Python 과 비교한 부분에서 확인 하실 수 있습니다.
          그리고 세번째는 많은 게임의 스크립트 언어로 검증이 되었다는 점입니다. 대표적으로 World of Warcraft(WOW)가 있겠죠. 많은 사람들이 루아를 WOW을 통해서 알게 되었죠. 간략하게 루아의 특징에 대해서 알아 보았습니다. 좀 더 자세한 루아의 역사는 http://en.wikipedia.org/wiki/Lua_(programming_language) 에서 확인할 수 있습니다. 한글 위키 페이지가 내용이 좀 부족하네요.
  • MFC/Socket . . . . 5 matches
          virtual void OnAccept(int nErrorCode);
         ///클라이언트가 접속하는 경우 이벤트가 발생하여 아래 함수가 호출된다.
          AfxMessageBox(temp.m_strData); //테스트 확인용으로 받은 메시지를 띄워준다.
          int err = GetLastError();
          * 한쪽에서는 서버 생성을 선택 (XP의 경우 이 프로그램의 서버를 허용할지 물어볼때 예 선택)
  • MemeHarvester . . . . 5 matches
         || 데이터 수집 || 로봇이 모든 웹을 돌아다니면서 데이터 저장 || 사용자가 특정 웹을 지정하고, 해당 웹에서 사용자가 원하는 키워드가 포함된 글이 올라올 경우나 새 글이 올라올 경우(옵션에 따라) 실시간으로 알려줌, RealTimeSearchEngine ||
         || 대중 매체 관리 || 연예인 같은 경우 자신과 관련된 기사가 어디에 새로 올라왔는지 알고 싶을때 자신의 이름을 키워드로 넣고 여러 관련 사이트들을 입력 하면 자신과 관련된 기사가 올라오면 실시간으로 알수 있다. 또한 학교나 기타 기관에서도 자신들의 이름이 어떠한 매체 거론되는지 실시간으로 모니터링을 할 수있다. 예를 들어 우리학교에서도 알바생을 시켜서 각 신문을 뒤적이면서 학교 관련 기사가 나왔는지 찾게 하는데 이런 것들을 자동화 하는게 가능하다. ||
         || 이메일 알림이 || 자신의 이메일 오는것중 특정인으로부터 오는것이나 특정 제목의 이메일이 오는경우 실시간으로 알려줄수 있는 기능.. 추후 핸드폰 문자 메시지로 알려줄수도 있다. ||
         || 중고 매매 알선 || 특정 중고 제품을 원한다고 등록해놓으면 현재 등록되어 있는 중고 사이트중에서 해당 물품이 올라올 경우 사용자에게 실시간으로 알려준다. ||
  • Minesweeper/이도현 . . . . 5 matches
         이번에는 처음으로 Presentation Error를 여러번 받았다. 이것은 프로그램이 도출하는 답은 맞으나 출력형식이 잘못된 경우 발생한다.
         결과적으로 이야기하면 하나의 출력세트가 있을 경우엔 밑에 빈 줄이 없어야하고 하나 이상일 때만 빈 줄이 있어야한다.
         밑에 코드에서 if문으로 outputNumber > 1 인 부분이 Presentation Error를 벗어나게 하는 해결방법이었다.
          // 출력 (출력이 하나인 경우는 밑에 빈칸을 두지 않는다!!)
  • OpenGL스터디 . . . . 5 matches
         3차원적인 요소를 더 두드러지게 표현하기 위해서는 쉐이딩을 사용하면 된다. 쉐이딩이란 '''입체적인 물체에 음영이나 색상 밝기 등을 잘 조절하여 표면에 입히는 기법'''을 말한다. 이런 기법을 통해서 정육각형같은 경우는 각 면을 도드라지게 표현할 수 있고, 더욱 실감나는 3차원적인 표현을 가능케 한다.
         필요한 경우에는 속도저하에 대한 문제가 발생할 수가 있다. 이런점에서 텍스쳐 맵핑은 훌륭한 대안책이 될 수 있다. '''텍스쳐 맵핑이란 각 입체 표면에 미리준비해둔 이미지를
          * 비실시간 3D는 반대로 미리 구성해둔 3D이미지를 화면에 보여주는 방식을 이야기한다. 예시로는 애니매이션이나 영화를 들 수 있겠다. 고품질 3D이미지같은 경우는 이를 랜더링하고 구성하는데에만 해도 몇시간이 걸릴 정도로 많은 시간이 소요되는데, 이를 위한게 미리 3D이미지를 구성해두고 화면에 띄워주면 즉시 화면에 보여줄 수 있어서 마치 실시간 랜더링한 것 처럼 보여줄 수 있다.
          * 뷰포트란, 화면의 좌측 하단이 0,0으로 기준을 두고 우리가 눈으로 보는 윈도우 창에서 임의의 크기를 할당해서 이미지 작업을 할 수 있는 화면에서의 실질적인 이미지 작업 영역를 이야기한다. 클리핑과 연관지어 이야기하면, 클리핑을 화면에 적용시키는 영역으로 말할 수 있겟다. 이 뷰포트는 보통 창 전체를 설정해두고 작업하지만, 특수한 경우 화면의 구성을 서로 다른 이미지로 구성해야한다면, 뷰포트를 나누어서 작업할 수 있다.
          * 그렇다면 이 openGL은 구체적으로 어떤식으로 작용하는가? 윈도우를 예시로 들어보자. 윈도우 같은 경우 어떤 화면에 이미지를 출력하려면 '''GDI(graphic Device Interface)라는 그래픽 장치 인터페이스'''를 통해서 출력장치로 출력데이터를 보내 출력한다.
  • PragmaticVersionControlWithCVS/CommonCVSCommands . . . . 5 matches
         파일의 내용을 확인하면 checkout 된 파일이 1.1버전의 것임을 확인할 수 있다.
         '''cvs update -d [files or directory]''' : 현재 디렉토리에 존재하는 모든 파일 폴더를 저장소의 최신버전으로 체크아웃. -d 옵션은 추가된 디렉토리가 존재하는 경우에 cvs가 현재 폴더에 자동으로 폴더를 만들어서 체크아웃 시킨다.
         하지만 바이너리의 경우에는 문제가 발생한다.
         위에서 보듯 color_renamed.txt라는 파일의 버전이 1.1인 것에 반해서 color.txt가 1.3버전임을 확인할 수 있다.
  • ProjectZephyrus/Thread . . . . 5 matches
          * ''Database Connection Pool 을 사용하던 하지 않던, DB 자원을 얻어오는 부분을 하나의 end point에서 처리하세요. 처음부터 이를 고려하지 않을 경우, '''*.java''' 에서 Database Connection을 생성하고, 사용하는 코드를 머지않아 보게 될겁니다. 이는 정말 최악입니다. pool을 쓰다가 쓰지 않게 될 경우는?다시 pool을 써야 할 경우는? 더 좋은 방법은 interface를 잘 정의해서 사용하고, 실제 DB 작업을 하는 클래스는 Factory 를 통해 생성하는게 좋습니다. 어떤 방식으로 DB를 다루던 간에 위에서 보기엔 항상 같아야 하죠. --이선우 [[BR]]
         가장 이상적인 상태는 예전 창준선배님이 세미나에서 이야기 했었던, '이러 이러한 라이브러리는 여기 있지 않을까 해서 봤더니 바로 그 자리에 있더라.' 하는 상태입니다. 그러면 최악은? '이러 이러한 라이브러리가 필요한데? 음.. 이쁘게 잘 만들어놓기는 귀찮고 에라 다음에 정리하지 뭐' 그리고는 해당 method들을 copy & paste. '''공통 모듈'''을 한곳에서 다루도록 하세요. 공통 모듈은 꽤 많습니다. logging, configuration, resource managing ,..
  • PyIde/SketchBook . . . . 5 matches
          ''스몰토크 비슷한 환경이 되지 않을까. 소스 코드의 구조적 뷰로는 LEO라는 훌륭한 도구가 있다. 크누스교수의 Literate Programming을 가능케 해주지. 나는 SignatureSurvey를 지원해 주면 어떨까 한다. --JuNe''
          * Source Folding - 화일 하나가 긴 경우라도 짧게 줄여놓고 쓰므로.
          * search - Function 이동시 편리. 게다가 일반 텍스트 에디터에 비해 search 기능을 수행하는 비용이 작다. / 한번, 그리고 바로 키워드 입력. (다른 녀석은? Ctrl+F , 키워드 입력, enter & enter. incremental search가 아닌 경우는 한단계가 더 있게 된다.)
         하지만, 손가락 동선의 경우 - ctrl + O 를 누르고 바로 메소드 이동을 한다. 일반 이동도 메소드 중간 이동은 CTRL +커서키. (이는 VIM 에서의 W, B) 위/아래는 커서키. 클래스로의 이동은 CTRL+SHIFT+T. Source Folding 도 주로 Outliner 에 의한 네비게이팅을 이용한다면 별로 쓸 일이 없다. 보통 의미를 두고 하는 행동들은 클래스나 메소드들 단위의 이동이므로, 그 밑의 구현 코드들에 대해 깊게 보지 않는다. (구현코드들에 대해 깊게 보는 경우가 생긴다면 십중팔구 Long Method 상황일것이다.)
  • REFACTORING . . . . 5 matches
          * 뭔가 비슷한 코드를 만들 것이고, 중복됨이 있은 경우에 당신은 주춤할 것이다. 하지만 어쨌든 일단 중복되는 내용이 있더라도 만들어라.
         Three Strike 법칙은 외우기 쉬워서 처음 Refactoring 을 하는 사람들에겐 적당하다. 하지만, 저 법칙은 주로 중복이 일어날 때의 경우이고, Rename Method/Field/Variable 같은 Refactoring 은 지속적으로 해주는 것이 좋다.
         그리고 다음과 같은경우 Refactoring을 함으로써 이득을 얻을 수 있다.
         ["Refactoring"] 과 TestDrivenDevelopment 는 일종의 메타패턴이다. (여기에 개인적으로 하나 더 추가하고 싶다면 ResponsibilityDrivenDesign) 두개에 충실하면 ["DesignPattern"] 으로 유도되어지는 경우가 꽤 많다.
         ["Refactoring"] 에 의외로 중요한 기술로 생각되는건 바로 Extract Method 와 Rename 과 관련된 Refactoring. 가장 간단하여 시시해보일지 모르겠지만, 그로서 얻어지는 효과는 대단하다. 다른 Refactoring 기술들의 경우도 일단 Extract Method 와 Rename 만 잘 지켜지면 그만큼 적용하기 쉬워진다고 생각.
  • SpiralArray/영동 . . . . 5 matches
          return true;//X방향으로 배열을 빠져나갈 경우(MAX이상)
          return true;//Y방향으로 배열을 빠져나갈 경우(MAX이상)
          return true;//X방향으로 배열을 빠져나갈 경우(0이하)
          return true;//Y방향으로 배열을 빠져나갈 경우(0이하)
          return true;//이동할 위치에 이미 딴 숫자가 적혀 있는 경우
  • TFP예제/WikiPageGather . . . . 5 matches
          * Python 이라는 툴이 참 재미있는 녀석이라 생각한다. 방식이야 basic에서의 그것이겠지만, '인터프리터언어라는 것이 쉽고 편하다' 의 이유를 다시 생각하게 해준 계기가 되었다. 일반적으로 우리가 프로그래밍을 할 때는 (여기서는 C++이라 하자) Visual C++ 을 하나만 띄어놓고 프로그래밍 하는 경우가 별로 없다. 보통 product code 를 위한 하나, 해당 함수 기능의 부분구현 (임시코드 구현)을 위한 하나. 서버-클라이언트 프로그래밍인 경우에는 3개를 띄우는 경우도 다반사이다. Python 의 shell 은 임시코드를 구현하는데 매우 편리한 도구이다. (한편 이쯤되면 검문이 필요하다. VS 2-3개 띄우는 거랑 python IDLE을 2-3개 띄우는 거랑 다를바가 뭐냐.. --; 내가 말하고 싶은 것은 C++이나 PHP에 파이썬처럼 공통 인터프리터 쉘이 있었으면 하는 것. -_a 흐흐..) 암튼. 나는 모인모인소스를 보면서 제목 검색 관련 일부 코드를 짤라서 쉘에서 간단히 실행해보고 검토하고 실제 소스에 적용해볼 수 있었다.
          except IndexError:
         위의 예에서는 해당 모듈에서 FrontPage 화일을 직접 open 했다. 위키에서 FrontPage가 바뀌었을 경우에는 해당 알고리즘이 올바르다 하더라도 테스트 코드에서 에러를 유발할 것이다. - 테스트를 위한 FrontPage 화일을 따로 빼두는 방법이 있겠군. -_-; (문제를 명확하게 해두면 해결방법이 도출되기 쉽다. ^^;)
  • TheJavaMan/숫자야구 . . . . 5 matches
         || 확인 버튼 누를 때 동작 ||. ||. || 끝냄 ||
         || 확인 버튼 누를 때 리스트에서 결과 표시 ||. ||. || 끝냄||
         || 입력 제대로 하지 않을때 처리하기 ||. ||. ||. ||
          Button ok = new Button("확인");
          ok = new Button("확인");
  • TortoiseCVS . . . . 5 matches
         TortoiseCVS 의 경우는 CVS Conflict Editor 를 Preference 에서 설정할 수 있다. [1002]의 경우는 WinMerge 로 잡아놓았다.
         Conflict 이 난 화일의 경우는 보라색으로 표시된다. 이 화일에 대해서 오른쪽 버튼을 눌러보자.
         Conflict 이 난 화일의 경우 메뉴 하나가 더 추가되어있다. 바로 '''CVS Resolve conflicts'''
         WinMerge 에서 통합하고 난뒤 TortoiseCVS 에서의 확인을 한번 더 받고 나면 처리 완료.~
  • UploadFileMacro . . . . 5 matches
         예를 들어, {{{MyPage}}}에 들어가서 {{{MyPage?action=UploadFile}}}을 하거나, MyPage에서 {{{[[UploadFile]]}}} 매크로를 사용하여 파일을 업로드를 하면 $upload_dir='pds';라고 되어있는 경우에 {{{pds/MyPage/}}}가 새롭게 만들어지고 거기에 올린 파일이 저장된다.
         예를 들어 아파치의 mod_mime이 hwp 확장자를 인식하지 못하는데, {{{my.php.hwp}}}와 같은 파일이름을 업로드할 경우, 아파치의 mod_mime모듈은 my.php.hwp를 hwp가 아닌 php파일로 인식하게 됩니다.
         이 값을 1로 설정하였을 경우, 업로드 할 때의 정보를 이용해서 파일 타입을 판별합니다.
         안전한 업로드가 이미 보장 된 경우 사용하실 수 있을 것입니다.
         공백이 들어있는 파일을 링크를 걸 경우는 {{{attachment:"hello world.png"}}}와 같이 링크를 걸어 준다.
  • VendingMachine/재니 . . . . 5 matches
          그리고 사람이 주문을 했을 때 주문받은 상품의 가격에 비해 잔액이 충분한지 확인 하는 것 하구..... / 계수기[[BR]]
          사람이 투입한 돈이 형식에 맞는지(10,50,100,500,1000원) 확인해서 잔액을 늘려주어야 할 것이고,[[BR]]
          ''클래스 수가 많아서 복잡해진건 아닌듯(모 VendingMachine 의 경우 Requirement 변경에 따라 클래스갯수가 10개 이상이 되기도 함; 클래스 수가 중요하다기보다도 최종 완료된 소스가 얼마나 명료해졌느냐가 복잡도를 결정하리라 생각). 단, 역할 분담할때 각 클래스별 역할이 명료한지 신경을 쓰는것이 좋겠다. CoinCounter 의 경우 VendingMachine 안에 멤버로 있어도 좋을듯. CRC 세션을 할때 클래스들이 각각 따로 존재하는 것 같지만, 실제론 그 클래스들이 서로를 포함하고 있기도 하거든. 또는 해당 기능을 구현하기 위해 다른 클래스들과 협동하기도 하고 (Collaboration. 실제 구현시엔 다른 클래스의 메소드들을 호출해서 구현한다던지 식임). 역할분담을 하고 난 다음 모의 시나리오를 만든뒤 코딩해나갔다면 어떠했을까 하는 생각도 해본다. 이 경우에는 UnitTest 를 작성하는게 좋겠지. UnitTest 작성 & 진행에 대해선 ["ScheduledWalk/석천"] 의 중반부분이랑 UnitTest 참조.--["1002"]''
  • VisualStudio . . . . 5 matches
         VisualC++ 6.0은 VS.NET 계열에 비하여 상대적으로 버그가 많다. 가끔 IntelliSense 기능이 안될때가 많으며 클래스뷰도 깨지고, 전체 재 컴파일을 필요로하는 상황도 많이 발생한다. ( 혹시, Debug Mode에서 돌아가다가, Release Mode에서 돌아가지 않는 경우도 있는데 보통 이는 프로그램에서 실수 태반이다. 그러나 간혹 높은 최적화로 인해 돌아가지 않을때도 있을 수 있다. )
         === IntelliSense 기능이 제대로 작동하지 않을때 ===
         #ifndef _CBOARDBASE_H_ // _CBOARDBASE_H_ 가 preprocessor 로 선언되지 않았을 경우 추가된다.
         기본적으로 지정된 경로 밖에서 라이브러리를 사용해야 하는 경우가 있다. 몰랐다가 링크를 거느라 한참 고생한 김에 여기에 정리해본다.
  • WhenJuniorsAsk . . . . 5 matches
         개인적으로 존경하는 형과 정담을 나누다가 OT 이야기가 나왔습니다. 그 형은 이미 졸업을 했는데, 신입생 OT 때 졸업생 대표 비슷하게 참석을 해서 후배들을 위해 좋은 말씀을 들려달라는 요청을 받았다고 하더군요. 그 형은 가지 않겠다고 했습니다. "요즘은 생각이 좀 바뀌었어. 내가 거기 나서서 결국 남들 다 해줄만한 이야기 해줘봐야 걔네들한테는 별 느낌이 없을거 같아. 그냥 자기들끼리 놀고 싶은 대로 놀게, 이야기하고픈 대로 이야기하게 내버려두는 게 더 좋지 않을까해. 훨씬 더 마음도 잘 통할테고 말야."
         뿐만 아니라 그 선배님께서는 메아리가 될 이야기들만 하지 않을꺼라 생각됩니다. 경험이라는 것은 오우라와 같아서 본인은 알지 못해도 다른 사람들은 느낄 수 있다고 생각합니다. 그리고 선배님께서 아무런 공감을 얻을 수 없는 이야기를 쏟아붓고 한귀로 흘려버려서 양자 모두 불행하니까 안하겠다는 것은 무언가 말이 안 맞는 말 같습니다.
          ''청자가 뭔가를 느끼느냐 마느냐는 문제를 떠나서, "자각 기회 박탈"이라는 면에서 생각해 볼 수도 있겠지요. 저는 남들에게 뭘 가르치기 이전에 항상 "실패의(혹은 간혹 성공의) 경험"을 충분히 만끽하게 합니다. 그러지 않고 바로 답을 혹은 답에 이르는 방법을 가르쳐 주게 되면 그들은 매우 귀중한 자각의 기회를 박탈 당하는 겁니다. 물론 교육적 방편에서 좀 더 자주, 더 일찍, 더 멋지게 실패할 수 있는 환경을 마련해 주는 경우는 있습니다.''
          ''"좋은 길을 찾는 방법"은 좋은 길을 찾을 생각을 한 번이라도 해 본 사람에게 가르쳐주는 것이 좋겠지요. 아직 그런 생각도 들지 않는 사람에겐 성급히 뭘 전달해 주려고 하는 것보다 차분히 기다려주는 것이 더 바람직한 경우가 많습니다. --김창준''
          선배님의 생각은 아직 (신입생들에게 들려주려는) 강연을 듣기에는 때가 이르다는 생각이신 것 같습니다만, 그렇다면 강연을 하실 수 있는 채널은 열어 놓으신 것입니까? 다시 말씀드린다면, 분위기를 봐서 언제정도에 (학생회측에서 요청이 없더라도) 강연을 하려는 계획이 있다는 말씀이십니까? 이렇게 묻는 것은 말꼬리 잡는 말이기도 하지만, 김창준 선배님의 강연을 들었을 때, 상당히 느끼는 바가 많았으며, 이런 선배님과 친분이 있으시고 학생회에서 섭외했을 정도의 선배님이 신입생들에게 강연을 해주었다면, 그 선배님의 생각과는 달리 신입생들에게 상당한 느낌이 다가오지 않을까 하는 막연한 믿음 때문입니다. --정희록
  • WorldCup/송지원 . . . . 5 matches
          * 이길 경우 한 팀이 3점 받고 비길 경우 각 팀이 1점씩 받으므로 승패가 가려지면 총 3점, 안 가려지면 총 2점이 취득될 것임.
          || 8870493 || enochbible || 3117 || Compile Error || || || Java || 456B || 2011-07-12 09:35:27 ||
          * 처음에 class명을 Main으로 해야 하는 지 몰라서 Compile Error를 아름답게 띄움...-_-;; // 아래 소스도 복붙할 때 바꿔 줘야 함
          * 몇번 해보면서 느끼는건데 poj는 사소한 예외는 신경 안쓰는 경우가 많은거 같더라구요....;; 괜히 Accept안되니까 우리가 온갖 예외처리를 다 잡아넣어서 그렇지요..;;;;; -[김태진]
  • Yggdrasil/가속된씨플플/4장 . . . . 5 matches
          * 전달인자(여기서는 배열)를 값에 의한 전달/참조에 의한 전달을 적절히 사용해야 한다. 원래 값을 보호해야 하는 경우라면 값에 의해서, 원래 값을 바꿔야하는 경우라면 참조에 의해 전달한다.
         인데, compare는 함수인데 괄호는 쓰지 않는다. 괄호를 쓸 경우 그 인자까지 알아서 써줘야할 것 같은데, sort의 정확한 구조를 잘 모르는 나에겐 좀 벅찬 방법이다. 하여튼 괄호는 쓰지 않는다.
          * throw로 예외 상황이 발생되었다는 것을 알린다. 예외 클래스엔 여러개가 있으며, 생성자로 문자열을 집어 넣을 수 있고, 이건 일반적으로 출력이 안되지만, what()함수로 확인 가능.
          * width(n) 메소드: 이전의 넓이를 리턴하며, n이 현재보다 클 경우 나머지 칸에 공백을 넣는다. n이 0이면 넓이 리셋.
  • ZeroPageServer/AboutCracking . . . . 5 matches
          * 전산센터 찾아가 확인 ipblock 풀고, 점검
          * 증상 : '''ZeroPageServer 에서 무한 데이터가 random ip 로 전송. 감시 동안 수천 packet 이상 통계 확인'''
          * 점검 : 이상 계정 찾기, 네트웍 확인, security update
          * 대응: mail 관련 서비스 port 막고, smtp 서버 없는 것 확인
          * 서버가 몇번 정전을 맞은 이후, squid 를 실질적으로 사용한 예는, 일요일 이다. spam이 뿌려진 정확한 날짜를 알면, 비교 할수 있지 않을까?
  • ZeroPageServer/old . . . . 5 matches
          * 서버 처리시 문의 사항을 ["FeedBack"]을 여기에 하십시오. 어떠한 불만사항 잡담도 좋습니다. 저는 기다리는 서비스지 찾아가는 서비스가 아닙니다. 서버 관련 처리 정도는 ["ZeroPageServer/set2002_815"]의 To Do List에서 확인 가능합니다. --["상민"]
          DNS 는 로컬 컴퓨터에 설치를 할 수 있고 동작은 하겠는데 교내의 어떤 규율(?)상 안되는 걸로 알고 있습니다. 아마도 네트웍 관리자에게 문의를 해봐야 할듯... 전에 비슷한 문제가 있었는데 유야무야 그냥 이대로 흘러온 것 같습니다. 학교 도메인을 갖지 않으면서 교내에서 운영되는 대표적인 서버로 동문서버일텐데... 이 경우는 어떻게 처리하는지 참고해 보는 것이 좋을 것 같군요. --[Passion]
          * (V) PHP 4 작동 가능하도록 : 확인 완료
          * man 을 영문판으로 재설치하였습니다. 확인해 보세요. --NeoCoin
          * 일주일전에도 접속했는데 갑자기 왜 그런지 알 수 없네요... 아이피가 차단되는것 같은데... 직접 로컬로 확인해보는 수밖에 없을 것 같아요 죄송하지만 해결하는데 시간이 쫌 걸릴 것 같아요(시험끝날때까지는...) 근데 그것보다도 서버 옮겨달라는게 더 큰 문제네요.. -- 세환
  • django/Example . . . . 5 matches
         본 논문에서는 Django를 사용하여 실생활에서 쓰일 만한 시스템을 만들면서 질의처리 능력과 데이터베이스 추상화를 실험해본다. 안전관리시스템은 안전관리가 필요한 위험을 파악하고, 위험이 발생하는 경우 사용할 수 있는 대처방안을 설정한다. 그렇게 함으로써 위험한 상황이 발생하지 않도록 하고, 실제로 위험한 상황이 발생했을 때 정책에 따라 적절한 방법으로 대처하여 큰 사고로 이어지지 않도록 돕는다.
         예를 들어 "너구리" 제조회사에서 안전관리시스템을 사용하여 "화재"라는 위험을 관리한다고 생각하자. "화재"가 발생하면 가연성 물질인 "너구리 꼬리"에 불이 옮겨 붙어 대형 사고로 이어질 수 있다. 따라서 "너구리" 사는 "물뿌리개"를 직원들에게 지급하여 "너구리 꼬리"에 불이 옮겨 붙기 전에 "화재"를 진압하기로 결정했다. 또한 "너구리" 사는 "화재"가 5분 안에 진압되지 않는 경우 "일일구" 서비스를 이용하기로 결정했다. 따라서 "너구리"사 직원들은 불이 났을 경우 "물뿌리개"로 일단 불을 끄고, 5분이 지나면 "일일구" 서비스를 부를 것이다.
         "화재"가 발생한 뒤에는 위험이 발생하고 이에 대처한 기록을 남긴다. "도난"이 발생한 뒤에는 원인을 분석하고 이에 대처한 기록을 남긴다. 이러한 위험 발생 기록에 대하여 "너구리"사는 유효적절한 대책을 시행했는지 확인한다. 만일 유효 적절한 대책을 시행했다면 이를 확인한다.
  • eXtensibleMarkupLanguage . . . . 5 matches
          * XML은 정말로 굉장히 강력하다. 덕분에 톰캣을 위시한 많은 애플리케이션이 셋업 파일로 XML을 활용하기 시작했다. BUT 크리티컬한 부분에 XML을 소통 데이터로 이용하게 될 경우 해당 부분이 그 프로그램의 performance critical path 가 되는 경우가 발생한다.
          * XML은 데이터 표현 방식(data presentation)이기 때문에 문법에 하나라도 어긋나거나 코드셋이 맞지 않는 경우에는 100% 에러를 내뱉는다. HTML을 다루다가 XML을 공부할 경우 이런 점에 당황스럽기도함. (DB 에서 코드셋 잘못 다루면 삽질하는 거랑 비슷함;; -_-)
          * DTD로 검색하다 여기로 왔네요ㅋㅋㅋ 예전에 쓰신 것 같아서 지금은 아시는 내용이겠지만 나중에 다른 분들이 이 페이지를 보실 수 있으니 시간을 건너뛰어 댓글 답니다~ DTD는 Document Type Definition의 약자로 XML 문서 작성을 위한 규칙을 기술하는 형식입니다. valid XML Document의 경우 well-formed XML Document이면서 XML에서 사용되는 원소 이름이 해당 문서에 대한 XML DTD나 XML Schema에 명세된 구조와 합치되어야 한다고 하네요. 이 내용에 대한 수업을 들으며 씁니다ㅋㅋㅋㅋㅋㅋㅋ - [김수경]
  • html5/webSqlDatabase . . . . 5 matches
          * 아래의 코드를 이용하면 지원 여부를 확인 할 수 있다.
         html5rocks.webdb.onError = function(tx, e) {
          html5rocks.webdb.onError);
          html5rocks.webdb.onError);
          loadTodoItems, html5rocks.webdb.onError);
  • 겨울과프로젝트 . . . . 5 matches
          * 마당을 굳이 나누는 이유는 너무 방만한 시간관리가 이루어지는 경우도 있기 때문이다.
          * XpWeek가 진행되며 방학을 즐기며 술독에 빠져 사는 경우가 많음으로 프로젝트 참가자를 받고, 프로젝트 진행을 위한 사전 준비를 한다. ( 학습방법, 교재, 모임주기, 기타등등 )
          * 이 이후에는 신학기 준비, 이사, OT후유증 기타등등으로 약간은 스터디 진행이 어려워 지지 않을까 생각합니다.
          * 올해 18일쯤 OT를 간 기억인데. 비슷하게 가지 않을까요??
          * 제대로 된다면 뒷풀이도 있지 않을까요??
  • 데블스캠프 . . . . 5 matches
         밤을 새지 않을수 없는 이유가 될수 있을까.
         며칠씩 밤새도록 있는 것이 그리 중요하지 않을 수 있다. 하지만, 중요한것은
         해서 목표를 정해놓은 일을 하지 않을 수도 없고, 그렇다고 그냥 그런 사람들을
         말했는데, 그것만으로 충분한 노력을 했다고 볼수 있지 않을까. 만일 참석하려고
         예전의 캠프에 경우엔 주로 학기중에 열렸었고, 피시실 자리문제라던지, 강사의 시간문제상 밤을 샐 수 밖에 없었다. 그리고 NoSmok:단점에서오는장점 에는 힘든 상황에서의 '극기' 에 의한 정신 수련 등이 있었다. 그리고 그에 따른 단점으로서는 캠프 참가자/비참가자 이후 학회에서 떨어져나가는 사람들이 생긴다는 점이다. 이는 99년 신입회원 C++ 스터디때도 똑같은 일이 일어났고, 초기 60명 -> 중기 15명 -> 후기 8-10명 과 같은 현상을 만들어냈다. 그리고 이 문제는 매년 같은 현상을 되풀이 했다. (데블스와 ZP 가 나누어져있을때건.) 하지만, 회의때마다 그러한 현상에 대해 '당연'하게 생각했다. 주소록을 보면 한편으론 암울하다. 어떤 분들이 ZP회원이였었지? (초기 60명? 후기 10명?) 누구에게 연락을 해야 할까?
  • 데블스캠프2003/다루어볼문제와관련세미나 . . . . 5 matches
          * 그거 하면 -_-... 우리가 죽어나지 않을까;;; -- [Dantert]
          * ToyProblems 와같은 식이면 좋을것 같은데요. 1학년 텀프로젝트가 있는데 그것 하나만 가지고도 SP, OOP 등의 프로그래밍철학과, STL 등을 다루기에 좋을것 같습니다. ([http://zeropage.org/pds/200361434244/2003C++TrmPrjSpec.ppt spec]) SP 와 OOP 는.. 누가할지.. 맡게되면 고생을할수도 있겠군요. 아래 JuNe 선배님의 CSP 나.. Tuple Space (전에 P2P 관련 문서에서 본것같은 기억이..-_-a ) 등과는 약간 맞지 않을수도 있겠지만요. (그것은 다른 도메인의 문제와 다루는게 좋을듯합니다) - [임인택]
          * 지나가다 잠시 말씀 드릴까 합니다. 아직 oop개념이나 프로그램 모듈화에 대해서 개념이 없는 분들에게 STL같은 것을 가르친다는 것은 약간 문제가 있지 않을까요? oop개념을 가르쳐도 구현 같이 base적인 경험이 없이 단지 가져다 쓰는것을 먼저 배우면 좋지 않을 것 같습니다. 1학년 분들 숙제 하는 것을 보니 모듈화 같은것을 가르쳐도 좋을 것 같은데. 많은 것을 가르치려고 하시는 것은 좋으나 능력에 적절하게 가르치는 것도 맞는 것 같군요. STL 같은 걸 가르치는 건 그 다음이 되었으면 좋겠구요.. 내부사정을 잘 모르니 틀리다 싶은 말이면 걍 흘려보내세요. 지우셔도 상관 없구요. ^^ - 00 나현철
          * 도큐먼트나 튜토리얼을 이용하는 방법을 알려주는 것도 괜찮은 것 같습니다. 새내기들에게 MSDN 에서 검색을 하는 것을 알려줬더니 단지 영어라는 이유로 겁부터 먹고 사용을 못하더군요. 어떠한 주제를 던져주고 이러한 것들을 스스로 찾아서 사용하는 방법을 알려주는 것도 스스로 공부를 해 나가는데 있어서 좋은 경험이 되지 않을까 합니다. -- [상욱]
  • 데블스캠프2011/다섯째날/후기 . . . . 5 matches
          * 수경이의 String 코드 레이스에서 저의 프로그래밍 달리기를 너무 빡세게 했던게 부끄러워서 이번엔 1학년 학우(저 같은 경우 성화수 학우)에게 설명해주고 그 학우가 하고 싶은 스펙으로 함께 프로그래밍 하고자 많이 노력했습니다. 파트너 교체 후 순의랑 파란 바를 만들어버리는 실수를 저지르긴 했습니다만 제가 부족한 탓이었구요-_-;; 개인적으로 화수의 '0층부터 지하까지' 아이디어는 신선했어요. 형진이가 처음에 의도했던 엘레베이터 문제(밖에서 누르고 층을 누르는 케이스)는 다른 클래스도 필요하고 일단 화수를 이해시키는데에 초점을 둬서 그걸 못 푼 점은 좀 아쉬웠어요.
          * 남이 짠 스펙을 보고 구현한다는건 처음이었습니다. 대개는 학교 프로젝트 할 경우에는 무슨 기능이 필요하다는걸 처음부터 생각하고 만드는데 실제 일하는 쪽에서는 그렇지 않을테니 좋은 경험이 됐다고 생각합니다. 유닛 테스트에서 해당 테스트 케이스가 스펙이 될 수 있다는 부분에 대해서도 잘 생각해보고 또 적용해보기 위해 노력해봐야겠습니다. 근데 TDD의 단점에 대해서는 크게 말이 없었던 것 같아서 그 부분이 좀 아쉽습니다.
          * 음... 사실 마지막에 발표했던 것처럼 이번 데블스캠프는 뭐라 할 수 없는 달성감이 있었습니다. 시청에 있으면서 이런저런 물건들을 손을 대 봤는데, 이번에 데블스에서 들은 다양한 세미나에 그것들이 들어있는 것을 보면서 반가운 느낌도 약간 들 정도였으니까요. 그리고 태진이 경우를 보면서 제 1학년 데블스 때 생각도 많이 났습니다. 그 때도 객체가 뭔지 모르고 강의를 들었었죠 ㅋㅋ 그래서 그랬는지 1학년 때는 데블스캠프가 전체적으로 힘들었던 기억이 강했습니다. 그런데 이번에는 끝나고 보니 상당히 섭섭한 느낌이 강해서 스스로도 좀 놀랐습니다. 조금이나마 공부를 해 두니까 여유를 가지고 데블스캠프의 분위기를 느낄 수 있게 된 게 아닐까 싶네요. 다만 그런 점에서 역시 1학년에게는 다소 힘든 행사가 아니었을까 하는 생각도 좀 듭니다 -___- 부디 이번 데블스캠프로 이쪽에 흥미를 가지고 스스로 이런저런 공부를 해 보는 계기가 되었으면 하네요. - [서민관]
          이때까지 학교 다니면서 데캠을 끝까지 제대로 나온적이 없어요. 데블스캠프 임원이었는데 제대로 준비한 것도 없는거같아 죄송할 따름입니다. 그래도 방학에, 이 좋은날에 낮부터 새벽까지 함께 해준 분들께 감사한 마음입니다. 좋은 자리였습니다. 살면서 이런 자리를 직접 준비해 볼 날이 많지 않을 것 같아 슬프섭섭하네요. 정모때도 많이 만나요.
  • 데블스캠프2013/셋째날/후기 . . . . 5 matches
          * 개인적으로 저한테는 실용성으로 따지면 아마 이번 데블스 캠프 1위가 아닌가 싶을 정도로 마음에 드는 주제였습니다. Window Builder는 전에 순의 선배가 쓰시는 걸 봐서 이런 게 있는 건 알았지만 그래도 직접 써 보니 생각보다 더 좋군요. 아마 나중에 정말로 쓸 일이 많이 있지 않을까 싶습니다. - [서민관]
          * 음... 사실 정말 열심히 준비를 해서 최대한 차근차근 쉽게 설명을 해 보자고 생각을 했는데... 그래도 역시 처음 접하는 것이라 그런지 그렇게 간단하게 진행되지는 않은 것 같아서 마음에 아쉬움이 남습니다. 새내기들이 파일 포인터랑 파일 입출력을 조금이라도 알고 있었으면 훨씬 수월했을텐데 말이죠. 그래도 제가 할 수 있는 전력을 다 했다고 생각하고, 앞으로 똑같은 주제로 세미나를 한다고 해도 더 낫게는 못 할 겁니다. 따라서 앞으로 같은 주제로 세미나를 할 일은 아마 없지 않을까 싶습니다. 부탁이라도 들어오지 않는 이상. 이것 때문에 마음 걱정이 커서 밥을 먹어도 먹는 느낌도 없었는데, 그래도 스스로 만족스러울 만큼은 한 것 같아서 속이 후련하고 또 조금은 아쉽기도 합니다. - [서민관]
          * 좋습니다. 개인적인 생각인데 데블스 캠프가 완전히 컴공의 전공으로 뒤덮이는 것보다 가끔 이런 내용이 있어도 좋지 않을까 하는 생각을 좀 합니다. 그러던 와중에 이런 세션이 있으니 좀 만족스럽죠. 정말 전자 전기에서 오셔서 많은 재미있는 것을 보여주시는 것 같습니다. 감사합니다. - [서민관]
          * 아두이노,,, 우노..게다가 우노..에 대한 안좋은 추억이..ㅠㅜ 물론 세션 내용은 흥미롭게 들을 수 있었습니다. 다만, 우노를 가지고 블루투스 모듈을 연결한 다음 안드로이드랑 통신할때 이게 문자열을 해석 잘 못하는 경우를 당해서 맨붕한적이 있어서... - [김윤환]
          * 개인적으로 좀 아쉬움이 큰 세션이었습니다. 물론 머신 러닝이 쉬운 주제가 아니라는 건 맞습니다. 하지만 오히려 그렇기 때문에 강사 입장에서는 최대한 난이도를 낮추기 위한 노력들을 할 수 있지 않았을까 하는 생각이 조금 남습니다. 적어도 새내기나 2학년 들이 머신 러닝이라는 뭔가 무서워 보이는 주제 앞에서 의욕이 사라질 수 있다는 생각을 했다면, 전체적인 알고리즘의 간단한 의사 코드를 보여주거나, DataSet을 줄인다거나 해서 조금 현실적인 시간 내에 결과를 보고 반복적으로 소스 코드를 손을 볼 수 있게 할 수 있지 않았을까요. 적어도 간단한 샘플 소스를 통해서 이 프로그램이 어떻게 돌아가는가, 어떤 input을 받아서 어떤 output을 내는가 등에 대해서 보여주었다면 더 재미있는 실습이 될 수 있지 않을까 하는 생각이 듭니다. 머신 러닝은 흥미로운 주제지만, 흥미로운 주제를 잘 요리해서 다른 사람들에게 흥미롭게 전해줄 수 있었는가를 묻는다면 저는 좀 아쉬웠다는 대답을 할 것 같습니다. - [서민관]
  • 데블스캠프계획백업 . . . . 5 matches
         2002년 6월 1일 기준 ["데블스캠프토론"] 에 대한 백업페이지입니다. ["문서구조조정"] 관계로 백업해둡니다. 문서구조조정 후 문맥의 변화로 인해 글의 의도가 바뀌었는지 각자 확인해주시고 고쳐주시기 바랍니다. --석천
          * NoSmok:ApprenticeShip 모델을 적용해서, 처음에는 선배 주도로 프로젝트를 하나 하고, 다음에는 조금씩 후배가 안으로 들어오게 하고, 선배는 바깥으로 빠지는 것도 좋습니다. 이 NoSmok:ApprenticeShip 에는 전통적으로 두가지가 있습니다. 재단사들의 경우, 사람이 새로 들어오면 맨 마지막 마무리 일(예컨대 단추달기 등)을 맡깁니다. 그러면서 경험이 쌓이면 공정을 역으로 거슬러 올라오게 합니다. 즉, 이번에는 단추달기도 하고, 주머니 달기도 하는 겁니다. 다음에는 단추달기, 주머니 달기, 팔 만들기처럼 하나씩 늘려 갑니다. 어느 시점이 되면 자신은 Journeyman이 되고 작은 일은 새로 들어온 Apprentice에게 넘기고, 자신은 나름의 확장을 계속하죠. 반대로 처음 공정부터 참여를 시키는 방법(항해사)도 있습니다. 중요한 것은 "주변"(덜 중요한 것)에서 "중심"(더 중요한 것)으로의 점차적 확장이지요. 이렇게 되면 견습공은 매번 "제품의 완전한 개발 과정"을 관찰할 수 있고, 어떻게든 도움이 되는 일을 하며, 그 참여의 영역을 넓혀나가게 되어, 종국에 가서는 전 개발 과정에 참여할 수 있습니다. 장난감 문제(Toy Problem)의 한계를 벗어나는 길이지요. --JuNe
          ''구체적으로 이전의 ["데블스캠프"] 때 했었던 일들에 대해 말씀해주셨으면 합니다. ZeroPagers들이나 JuNe 님의 경우 ["데블스캠프"]를 겪어보지 않은 관계로 '기존의 방법' 자체에 대해 제대로 알고 있지 못하다고 생각합니다. 그때 실제 했었던 행사들, 느꼈던 장점이 될 부분, 그리고 보완해나가야 할 점 등에 대해서 말씀해주신다면 각 방식들에 대한 올바른 시각을 가질수 있으리라 생각합니다. 서로 무엇을 말하는지 알지 못하는 상황에서는 좋은 판단이 내려질 것이라 생각되지 않습니다. --석천''
          ''PairProgramming 이 그 방법으로서 적합하다고 생각하지만, 이 또한 '선'을 잘 맞춰야 하겠죠. 개인적으로는 약간의 전략이 필요하다고 생각합니다. 요즘 하고 있는 Pair의 경우 초기에 대해서는 가급적이면 알고 있는 내용을 천천히, 자세하게 가르쳐주려고 하는 중입니다. 일단 Todo List 를 주석으로 달아놓고, (또는 연습장 등) 제가 먼저 기본 틀이 되는 부분을 플밍을 합니다. 그리고 나머지를 후배들이 플밍하게끔 하고. 그리고 이 주기를 좀 짧게 가져보려고 하고 있죠. (20 - 30분) 그리고, 차차 그 주기를 늘려 보려는중. 너무 선배가 오래잡고 있어도 후배들은 넋놓고 구경하고, 너무 후배가 오래잡고 있어도 완성되는 정도가 오래걸려서 Feedback 이 오는 시간이 오래걸리면, 또한 지쳐하는 듯. --석천''
          * 학교를 다니면서 혼자서는 거의 공부하지 않을만한, 그러나 중요한 것들(see also FocusOnFundamentals). 앞으로 학교생활에서 체험하기 힘든 것들. 학교를 졸업할 때까지 유효한 지식으로 남아있을만한 생명력이 긴 것들. 학교생활 동안 공부, 프로그래밍에 영향을 많이 끼칠 메타 수준이 높고 늘상 하는 것들. 사고하는 방법. 프로그램을 만드는 방법. 아마추어 아이디어 맨은 "아이디어"를 만들고, 프로 아이디어 맨은 "아이디어를 대량으로 생성해 낼 수 있는 구조와 과정"을 만들어 낸다고 합니다 -- 프로가 만든 아이디어는 엄청난 양의 아이디어를 자동 생산해 냅니다. 제가 학교를 다닐 때 "프로그램을 생성해 낼 수 있는 구조와 과정"을 선배에게서 배웠더라면 얼마나 좋았을까 하는 생각을 자주 합니다. 예를 들어, 이메일 주소를 찾는 RE를 "답"으로서 가르치거나, 혹은 무작정 시행착오를 거치면서 그 답을 찾으라고 종용하거나 하는 것보다는, 그런 RE를 효율적이고 손쉽게 생성해 낼 수 있는 과정과 인식적 도구를 가르쳤으면 합니다. --JuNe
  • 만년달력/강희경,Leonardong . . . . 5 matches
          이번달이 무슨 요일에서 시작하는지 알 수 있다. 예를 들어 1년 2월 같은 경우
          days = 29;//윤달인경우
          days = 28;//평달인 경우
          days = 28;//평달인경우
          else//평달인 경우
  • 문서구조조정토론 . . . . 5 matches
          계속 대화의 핀트가 어긋나고 있습니다. 내용 자체가 전달하려는 의도와 어긋난 것이라면, 해당 작성자가 고치는게 가장 맞는 방법이라는데 동의합니다. 제가 제기한 이야기는 그러한 부분이 아님을 말씀드립니다. 서로 연관된 문제에서 위치를 바꾸는등의 문서 구조 조정 이야기 입니다. 이 경우, 내용 자체의 변화는 없지만, 문서 구조 조정자가 관련글의 위치를 바꿈으로써 잘못된 의미를 전달할 수 있고, 그 결과로써의 파생 결과를 우려하였습니다. 이는 해당 문서 작성자보다, 문서 구조 조정자가 좀 더 신경을 쓰는 편이 맞다고 생각합니다. --이선우
         ["neocoin"]:말씀하시는 문서 조정은 문서 조정은 문서 작성자가 손대지 말아야 한다라는걸 밑바탕에 깔고 말씀 하시는것 같습니다. 문서 조정자는 특별히 문서 조정을 도맡는 사람이 아니고, 한명이 하는 것이 아니라, 다수가 접근해야 한다는 생각입니다. "다같이" 문서 조정을 해야 된다는 것이지요. 문서 조정을 한사람의 도맡고 이후 문서 작성자는 해당 문서에서 자기가 쓴 부분만의 잘못된 의미 전달만을 고친다라는 의미가 아닌, 문서 조정 역시 같이해서 완전에 가까운 문서 조정을 이끌어야 한다는 생각입니다. 즉, 문서 구조 조정이후 잘못된 문서 조정에서 주제에 따른 타인의 글을 잘못 배치했다면, 해당 글쓴이가 다시 그 배치를 바꿀수 있고, 그런 작업의 공동화로, 해당 토론의 주제를 문서 조정자와 작성자간에 상호 이해와 생각의 공유에 일조 하는것 이지요.[[BR]] 논의의 시발점이 된 문서의 경우 상당히 이른 시점에서 문서 구조조정을 시도한 감이 있습니다. 해당 토론이 최대한 빨리 결론을 지어야 다음 일이 진행할수 있을꺼라고 생각했고, thread상에서 더 커다랗게 생각의 묶음이 만들어 지기 전에 묶어서 이런 상황이 발생한듯 합니다. 그렇다면 해당 작성자가 다시 문서 구조 조정을 해서 자신의 주제를 소분류 해야 한다는 것이지요. 아 그리고 현재 문서 구조조정 역시 마지막에 편집분은 원본을 그대로 남겨 놓은 거였는데, 그것이 또 한번 누가 바꾸어 놓았데요. 역시 기본 페이지를 그냥 남겨 두는 것이 좋은것 같네요.(현재 남겨져 있기는 합니다.) --상민
         저는 PairProgramming을 가르치기에 앞서 NoSmok:PairDrawing 을 경험하게 합니다. 여기에는 여러가지 방법이 있는데, 구체적인 대상(사람 얼굴이나 동물 등)을 정해놓고 서로 한 줄 씩 번갈아 가며 그리는 방법이 있고, 아니면 아무것도 정하지 않고, 혹은 대강의 주제만 정해놓고 그냥 "멋진 그림"을 그리자는 합의하에 번갈아 가며 한 줄 씩 그리는 방법이 있습니다. 모두 그리는 중엔 말을 하지 않습니다. 여기서, 후자 경우 적극적으로 상대방의 의도를 이해하려는 노력이 없으면 좋은 그림이 나오기 어렵습니다 -- 한사람은 사람을 그리려고 하고 다른 사람은 나무를 그리려고 하는(혹은 상대가 나무를 그리려고 하고 있다고 오해한) 경우를 생각해 보세요. 상대의 의도를 이해하려고, 또 그것이 더 잘 드러나도록 서로 노력하다보면 혼자 그린 그림보다 더 좋은 그림이 나오는 경우가 종종 있습니다.
  • 빵페이지/숫자야구 . . . . 5 matches
          int success = 0; // 제대로 입력했는지 확인 절차 (0 = 실패, 1 = 성공)
          } // 1~9사이에 숫자가 제대로 입력되었는지 확인
          success = 0; // 4자리가 정확히 입력되었는지 확인
          } // 중복 입력이 되었는지 확인
          new_game(); // 정확히 맞췄을 경우 new_game함수로 이동
  • 사랑방 . . . . 5 matches
          ''약간은 사기라고 봐도 됩니다. 퀵소트에서 첫번째 원소를 피봇으로 잡는 경우가 헤스켈에서 아주 간단히 표현될 수 있다는 점을 이용한 것이죠 -- 첫번째가 피봇이 되면 문제가 생기는 상황들이 있죠. 보통 헤스켈의 "간결성"을 강조하기 위해 전형적으로 사용되는 예입니다. 뭔가 독특한 점을 강조하기 위해 쓰인다는 것 자체가 이미 약간의 과장을 암시하고 있습니다. see also Seminar:QuickSort --JuNe''
          ex) &12;{&#; 의 경우 '''&'''12;{'''&'''#; (굵은 글씨가 매치된 케이스)
          i. 스트링 비교하여 "&"일 경우 - 찾음.
          i. 그렇지 않을 경우 - pass.
  • 상협/삽질일지/2002 . . . . 5 matches
          * AI 오목을 짜면서, if(a=1) 과 같은 코드가 수많은 코드들 사이에 몇개 있는 바람에 무진장 고생했다. 분명히 제대로 짯는데 결과는 원치 않은 방향으로 나오는 것이었다. 정말 미쳐버릴것 같은 나날들이었다. 나중에서야 저것때문에 문제가 생겼다는 것을 알고나서 Error도 뜨지 않는 오타가 정말 무섭다는 것을 알았다.
          * AI 오목 하면서, 효율적으로 어떻게 구성할지에 대한 생각을 별로 안해서, 나중에 경우의 수가 많아지자 상당히 힘들어졌다. 그때 한번 날 잡아서 중복되어 보이는 함수들을 다 통합했다. 그 통합하는 시간이 아깝다고 생각했었는데, 한번 통합하자 효율은 극도로 높아졌다. 예전에는 몇개의 기능추가 하면 그 경로를 나름대로 축약을 했었음에도 불구하고 4가지 경로 && 공격 && 방어에 대해서 따로 시간을 내어서 코드들을 작성해야 했다. 그러나 함수들을 최대한 중복되지 않게 축약하자 한번의 기능추가가 바로 공격 && 방어 && 8가지 방향에 대해서 다 적용되는 것이었다. AI 수준 높이는데 드는 노력이 훨씬 줄어 들게 되었다. 효율적으로 프로그래밍을 해야겠다는 것을 막연히 생각하고 있었지만 이 경험으로 인해서 체감을 하게 되었다.
          ''Exception Handling 에 대해서 이해해야 할 것 같은데. Exception 은 해당 함수가 throws 등으로 발생을 시키고, Java 의 경우 그 Exception 을 반드시 처리를 해주는 곳을 만들어야 하지. 해당 메소드 내에서 Exception 이 발생은 하는데, 그 메소드에서 예외처리를 바로 하고 싶지 않으면 (즉, 그 Exception을 그 메소드 내에서 처리하지 않고, 그 메소드를 호출했던 곳 등에서 처리를 한다고 한다면) throws 로 해당 메소드에서 exception 을 또 던져주는 식으로 되겠지. 만일 Class.forName(...) 쓴 구문을 try - catch 로 예외를 또 잡는다면 이야기가 다르겠지만. 자바는 Exception 를 강요하는 관계로 예외는 catch 에서 무엇을 하건, 반드시 해당 발생된 예외를 잡아줘야 함. (그 덕에 최악으로 뻗을 일이 적지. 예외는 발생하더라도) --석천''
          * 오늘도 어김 없이 ㅡㅡ;; 삽질을 했다. 이번에는 matrix 클래스를 구현하는데 matrix데이터를 이중 배열로 private영역에 넣어서 이것 저것 해보는데 나중에 클래스의 matrix 데이터를 호출해야할 경우가 생겼다. [4][4] 이거 두개로 리턴할라고 했는데 안되었다. 남훈이형이랑 제본뜬 책찾아 보니깐 배열은 리턴이 안된다고 나왔다. 그래서 고민하다가 *[4] 이거 두개(포인터형 배열 4개짜리)를 사용하고 나중에는 *를 리턴하는 식으로 돌파구를 찾았다.(*[4] 이것도 배열이랑 비슷하게 써먹을수 있었다. 예-> *(matrix[0]+1)) 처음에는 뭔가 되는듯 싶었다. 클래스 내부 배열 설정도 제대로 되고 하였다. 그 .... 러..나.. ㅡㅡ;; 역시나 난 삽질맨이었다. 나중에 + 연산자 재정의 클래스 내에서 객체를 생성해서 리턴할때 뭔가 제대로 먹지가 않았다. 그거 가지고 간만에 ㅡㅡ;; 삽질에 바다에 퐁당 빠졌다. 간만에 해보는 삽질도 그리 유쾌한 일은 아니었다.. -_- 그렇게 계속 신나게 삽질하다가 도저히 안되겠다 싶어서 멤버 데이터를 public에 넣어 버리는 엽기적인 일을 해버렸다. ㅡㅡ; 그 방법밖에는 없는거 같았다. 그 후로는 아무런 걸림돌 없이 쭉쭉 되었다. 진작 이렇게 할걸하는 생각을 했지만 서도 멤버 데이터를 public안에 넣어서 웬지 모를 찝찝함이..
          ''근데.. Matrix 클래스가 있음에도불구하고 왜 Matrix 내의 array를 직접 접근할 일이 생긴건지? 그리고 연산자 재정의와 관련된 문제라면 Matrix 에 인자를 접근할 수 있는 메소드를 넣던지 friend 로 해결해야 하지 않을까 싶음 --["1002"]''
  • 새싹교실/2011 . . . . 5 matches
         내가 짠 코드를 직접 출력을 통해 확인하는 것은 분명 매력적인 일입니다. 그러나 처음 익힌 코딩 습관은 버리기 매우 어렵습니다. 많은 학생들이 처음 프로그래밍을 배우며 printf 함수를 사용하여 코드를 검증하는 습관을 들입니다. 그 때문에 상당수의 졸업할때까지 테스트보다는 직접 눈으로 확인하는 것을 선호합니다. 그런데 작성한 코드가 잘 돌아가는지 알기 위해 직접 눈으로 확인해야만 하는 것은 매우 많은 문제가 있습니다.(이것에 대해서 더 적자면 정말 길어질테니 일단 이 페이지엔 적지 않겠습니다.)
          * 출력을 통한 확인보다는 테스트를 통한 확인을 유도해주세요.
  • 새싹교실/2012/개차반 . . . . 5 matches
          * 즉석에서 코드를 작성해가며, Compile error, logical error, debug error의 개념에 대해 설명
          * Maximum, minimum value of int(경우의 수 이용)
          * Postfix 일 경우 변수 뒤에 Decrement/Increment operator를 사용하며 다른 계산이 끝난 후 적용된다
          * Prefix 일 경우 변수 앞에 Decrement/Increment operator를 사용하며 다른 계산을 실행하기 전에 적용된다
          * 계산 과정에 같은 변수가 포함되어 있을 경우 축약 연산자를 사용할 수 있다
          * 컴퓨터에서 2진법의 1은 true, 0은 false로 나타나는 경우가 있다
  • 스터디/Nand 2 Tetris . . . . 5 matches
          * Mux나 Demux같은 경우, 입력이나 출력이 너무 많을 경우, 작은 규모의 Mux를 여러 개 이용해서 큰 규모의 Mux를 구현해도 된다. 예를 들면, 4way Mux는 2Way Mux 3개를 이용해서 구현할 수 있다.
          e.g. A - 32일경우, M은 M[32]임. M을 사용할 때, A의 값은 memory의 address
          * MIPS 코딩하는 것을 생각하고 과제를 진행했는데, 현실은 MIPS 보다 더 하드코어했네요. Symbol도 사용안하고(사실 Cpu emulator만 사용해서 생긴 문제일 수도 있지만), 레지스터도 2~3개 밖에 사용하지 못하는 상황에서 작성하려고 하니 참 막막했습니다. I/O Handling 같은 경우 키보드 입력을 해결하려고 나름 생각을 해서 작성을 했는데, 결과물이 영 마음에 들지 않는군요. 아무튼 이번 시간에 느낀 것은 "High-Level Language가 왜 필요한가?" 가 되겠습니다. 사실 이 느낌은 어셈블리 시간에도, 컴퓨터 구조 시간에도 느꼈지만 말이죠. 이제 1/3정도를 진행했고, 계획대로라면 12월이 되기 전까지 1/2는 진행할 수 있을 것 같아서 기분이 좋네요. 무사히 진행해서 끝을 봤으면 하는 생각입니다. - [권영기]
          Keyboard를 위한 RAM 어딘가를 할당해놓음. 이 공간은 Keyboard를 위한 공간. CPU는 그 공간을 읽어서 어떤 key가 들어왔는지 확인.
  • 우리가나아갈방향 . . . . 5 matches
         ZP는 인력 Pool 이고, 모임의 장으로서의 역할만이라도 충실할 수 있다면. 학교가 그 역할을 제대로 못해주고 술자리로도 그 허전함을 채울 수 없을때 ZP가 그 역할을 제대로 해줄 수 있다면. 그것을 ZP의 정체성으로 정의해도 좋지 않을까. 홈 브루 컴퓨터 클럽을 꿈꿀 수 있을지도.--석천 [[BR]]
          홈 브루 컴퓨터 클럽을 그 대상으로 한다면 참 좋은것 같다. 우리의 정모가 해당 모임이 될수 있을 것이고, 과거에도 그렇게 하려고 노력했것만, 호응도가 낮았다고 생각한다. 뭐 하지만 계속 바위에 계란을 던지다 보면 언젠가 이끼라도 끼지 않을까. 할수있는 최상은 제자리에서 열심히 --상민
         우리나라의 기업은 인턴쉽 제도가 발달되어 있지 않기 때문에, 대학생들이 방학이 되어도 자신의 전공과 관련된 경험을 쌓은 기회를 잡기가 쉽지 않아 보입니다. 그나마 아르바이트를 구하는 경우에는 프로그래밍 언어를 다루는 능력이 뛰어나고 경력이 있는 사람을 선호합니다. 그렇기 때문에 경력도 없고 프로그래밍 실력이 뛰어나지도 않은 대다수의 학부생이 방학 때 경력을 쌓기란 어렵습니다.
         학교를 따라 인맥이 형성되는 현상은 그다지 바람직하지는 않아 보이나, 없는 것보다는 낫다고 생각합니다. 인맥이 문제가 되는 것이 아니라, 아는 사람이라고 무조건 우대하는 눈먼 인맥이 문제이니까요. 인맥을 통하면 자신이 모르는 정보를 얻을 수도 있고, 자신이 하고자 하는 일에 도움을 받을 수도 있습니다. 아르바이트도 아는 사람을 통해서 구하는 경우가 태반입니다.
         연락망을 만드려면 연락처를 구하는 일이 가장 먼저 이루어져야 한다고 생각합니다. 현재 제로페이지 회원 연락망이 회장단에게 물려져 내려오고 있지만 연락처가 부정확한 경우가 상당수 있습니다. 연락이 가능한 회부터 시작하여 꼬리에 꼬리를 물고 연락처를 구해나갈 수 있을 것입니다. 그 다음으로 현재 활동하지 않는 회원들에게도 가치를 돌려줄 수 있는 정보 공유의 장이 마련되어야 하리라 봅니다. 무조건 도움을 받기만을 바라고 이러한 인맥을 만든다면 그다지 많은 호응을 얻어낼 수도 없을 것이기 때문입니다.
  • 위키로프로젝트하기 . . . . 5 matches
          * 종료 - 원하는 목표에 도달했을 경우, 또는 Schedule 에 세운 계획에 맞춰 일이 완료되었을 경우에는 프로젝트를 종료한다. 만일 기간을 넘기고, 프로젝트를 진행할 의욕을 잃었다면, 프로젝트를 종료시켜라. (무기한 보류로 오래 끌고 있지 않도록 한다. 이는 추후 새 프로젝트를 열때 발목을 잡을 것이다.)
         일반게시판에 경우 프로젝트가 어떻게 진행될까? 하나의 프로젝트당 하나의 게시판이 열려있어야 한다. 프로젝트가 10개라고 한다면 게시판이 10개가 열려있어야 하고, 각각의 글들은 시간순서대로 저장이 된다. 위키에서의 page 10개의 의미와 게시판 10개의 의미중 어떤 것이 더 cost가 적게 들까? 그리고, 시간순서의 글 index 나열방식과 텍스트 내의 하이퍼링크중심 글 나열방식중 어느것이 더 의미있는 정보를 담을까?
         기존의 게시판방식이 장점이 있다면 '시간의 역사' 라는 점이 있겠다. 매일 작업일지를 쓰는 경우. 시간의 흐름에 따른 진행상황이 처음부터 주욱 보이기 때문이다. 반면 위키는 늘 현재성을 추구한다. 위키의 페이지는 늘 해당 주제를 중심으로 고쳐지는 글이다. 하지만, 시간의 역사 자체의 의미보다는 페이지 자체 내용, 즉 Content 중심의 사고라는 점에 더 무게중심을 두고 싶다. '시간의 역사' 자체가 Content 로서 중요하다면, 그것을 위한 페이지를 열어라.
          * 더 효율적으로 이용하기 원한다면, 해당 지식을 이해한 상태에서 정리가 이루어져야 할 것이다. 만일 2~3명 이상 다른 사람들과 스터디를 하게 되는 경우, 해당 지식에 대한 사람들의 이해의 관점이 다를 수 있음을 알게 될 것이다. 여러 관점을 보는 것 또한 좋은 경험이 될 것이다. (외국의 대학에서는 위키를 해당 강의에 대한 공동필기장으로 쓰기도 한다.)
  • 일반적인사용패턴 . . . . 5 matches
         해당 주제에 대해 새로운 위키 페이지를 열어보세요. Edit Text 하신 뒤 [[ "열고싶은주제" ]] 식으로 입력하시면 새 페이지가 열 수 있도록 붉은색의 링크가 생깁니다. 해당 링크를 클릭하신 뒤, 새로 열린 페이지에 Create This Page를 클릭하시고 글을 입력하시면, 그 페이지는 그 다음부터 새로운 위키 페이지가 됩니다. 또 다른 방법으로는, 상단의 'Go' 에 새 페이지 이름을 적어주세요. 'Go' 는 기존에 열린 페이지 이름을 입력하면 바로 가게 되고요. 그렇지 않은 경우는 새 페이지가 열리게 된답니다.
         어느정도 위키에 익숙하시다면 보통 최근 바뀐 글 또는 RecentChanges 를 링크로 걸어놓으십시오. 가장 최근에 수정된 페이지들을 바로 확인하실 수 있습니다.
         위키의 특성상 한 페이지가 길어지는 경우가 많습니다. 스크롤을 위해 휠만 사용하는 것보다는 Page Up, Page Down을 적절하게 사용하시는 것이 편합니다. 한쪽손은 키보드, 한쪽손은 마우스.~
          * 페이지를 삭제하지 않은 경우 - 한쪽 창에서 상단 오른쪽의 파란아이와 짝짝이 안경(?)을 클릭하시면 해당 페이지의 히스토리와 페이지의 수정내용을 알 수 있습니다. 일단 파란아이를 눌러서 복구하고 싶은 버전을 View 하십시오. 그 다음, URL 입력창에서 action=recall 을 action=raw로 바꾼 후 해당 내용을 다시 복사하시면 됩니다. (이때는 Frame 안에서 작업하지마시고, 위키 페이지를 직접 전체화면으로 하여 해당 URL이 보이는 상태에서 작업하십시오.)
          * 페이지를 삭제한 경우 - 짝짝이 안경(diff) 기능이 작동하지 않습니다. 파란아이를 이용하셔서 날린 내용을 얻은뒤 편집해주세요. (조금 번거롭습니다.)
  • 정모/2003.1.15 . . . . 5 matches
          * 실력 없는 사람들의 열의가 금세 사라진다. -> 실력이 없어서 열의가 없는게 아니라 열의가 없어서 실력이 없는거 같네요. 이런건 뭐 주위에서 뭐라고 할 수 있는 문제가 아닌거 같습니다. 그사람이 흥미가 없어서 그런거니.. "해커 그 광기의 기록"이란 책을 보면 MIT에서도 해커적으로 프로그래밍을 즐기는 사람들과 단순히 열의 없이 주어진 공부를 하는 사람들이 있던데, 이건 뭐 어디가나 마찬가지인가 봅니다. 제 의견으로는 두 부류로 나누는건 힘들거 같습니다. 열의가 있는 사람들도 지금 힘든판에 열의가 없는사람들까지 이끌고 가긴 힘들거 같고, 아예 열의 없는 사람들이 스스로 열의가 생길때까지 놔두고 열의 있는 사람들을 주변에서 잘 포착해서 데려오는게 좋을거 같습니다. 상규를 제로페이지로 데려온것이 그 좋은 사례인거 같네요. 이번에 02 석진이 같은 경우도 열의가 있어 보이고 들어 오려고 했던거 같은데 아마 이번 정모에 안 왔을듯 싶습니다. 사람들을 데려올땐 적어도 1명이라도 좀 아는 사람이 있어서 같이 가자고 해야 갈만하지, 아무도 직접 오라고 하지 않았으면 가기가 좀 그럴겁니다. 그런걸 염두에 두고 모든이를 대상으로 하는 말인, "제로페이지는 열려 있으니 정모 아무때나 오세요~"라고 하기보다는 그 대상에게만 언제 어디로 와서 한번 보자고 직접 메신저라든지, 전화 같은걸로 해야 할듯 싶습니다.
          * 새내기 모집일정해 대해 한번쯤 이야기를 해야하지 않을까요? 매년 새내기들이 많이 빠져나간것도. 여러가지 문제가 있겠지만, 모집일정에도 약간 문제가 있다고 생각합니다 - 임인택
          * 현재 ZeroPage 새내기를 모집하는데 있어서 ('뽑는다' 가 아니라 '모집한다'가 맞는거겠죠?) 기존에 행하여오던 방법에 문제가 있었다고 생각합니다. 우선 ZeroPage의 경우 회원을 1학기 초에 모집하는것으로 알고있습니다. (그 이후에는 수시모집인것으로 알고 있습니다.) ''친구따라 강남간다''처럼, ''친구따라 ZeroPage 회원되다''. 가 되는 새내기가 많은 게 사실입니다. 문제는 강남에 갔다가 다시 자신이 있던 곳으로 돌아온다는데 있는 것 같습니다. 매년 반복되어오던 현상이 아닌가요. -.-a 저는 이러한 모습에 부정적인 시각을 가지고 있는 터라, 다른 방법으로 새내기를 모집하였으면 좋겠다는 생각을 했습니다. 우선, 1학기 초가 아닌 여름방학 시작 전에 모집을 하는 것은 어떻습니까? 여름방학 전에 새내기 모집을 하고, DevilsCamp를 개최하면, 나름대로 좋은 방법이 될 것이라 생각합니다. 모집 전까지는 새내기와 2학년을 대상으로 하는 산발적인 세미나를 개최하여, ZeroPage에 대해 인지도를 높일 수 있고, 새내기들로 하여금 ‘’남들하니까 나도해야지‘’가 아닌, ‘’나에게 꼭 필요하구나‘’를 느끼게 할 수 있지 않을까요? (ps. 이에 대해 토론 페이지를 개설하는건 어떻습니까?) - 임인택
          작년의 경우 3월에 소개, 홍보 차원에서 '설명회'를 했었고 4월부터 C++세미나 등등 관심을 불러일으키고 낯익게 하기 위한 것들을 했었습니다. 여기까지 '준회원' 형식으로 있다가 '데블스캠프'를 마쳐야 정회원이라는 조건을 내걸었었습니다. 데블스캠프가 조건이 되지 않았던 것 같지만 사실 현재 02학번들의 활동을 보면 데블스캠프 참여도와 상관성이 많습니다. 작년 모집방법에서 수정이 필요한 부분을 짚어주시면 감사하겠습니다. 뭔가 선배 의견에서 공감이 될것 같은데 정확히 못집어 내겠습니다. ^^;; --창섭
  • 정모/2012.12.3 . . . . 5 matches
          * 의정이형네 집 (펜션)으로 갈 경우 야간 스키를 탈 가능성도 있습니다.
          * 이 경우에 한해 날짜가 바뀔수도 있단 말씀..!
          * 평창까지 갈 경우 교통비라던지.. 1등팀에게 상금도 있구요.
          * 누가 말하든 끝까지 들을 가치는 있습니다. 말하고 난 후에 반대의견을 말하고, 진행상 스킵해야하는 경우에나 잘라야 하겠죠. 딴 소리 하는 빈도가 높다고 하더라도 10초만 듣고 말하면 되니깐요. (요약해서 말해달란 정도는 괜찮지 않을까 싶네요.) -[김태진]
  • 정모/2012.3.19 . . . . 5 matches
          * 처음 나온 사람들도 있긴 했지만 서로 아는 사이가 많은 모임에서 자신에 대한 진실 혹은 거짓은 적절한 활동이 아닌 것 같습니다. 작년에 저도 진실 혹은 거짓을 진행한 적이 있긴 한데 그땐 일주일을 돌아보는 활동으로 지난주에 한 일들에 대해서 실제 했던 일과 거짓말을 적었던 거라서… 아이스 브레이킹이 원래 처음 보는 사람들 모이는데서 어색한 분위기를 깨려고 진행하는 경우가 많은데 ZeroPage 정모는 주로 활동하던 사람들이 모이는 모임이니까 어떤 형태의 아이스 브레이킹이던 기존 형태를 그대로 쓰면 적절하지 않을 것 같아요. 어수선한 분위기를 정리하고 다들 정모에 적극적으로 참여할 준비자세를 갖추게 하는 방향을 지향하는 게 좋지 않을까 싶네요.
          * 저도 전체적으로 전부 영어를 쓰는게 좋다고는 생각하지 않아요. 정작 필요한 내용을 제대로 전달하지 못할 수도 있으니까요. 다만 OMS정도는 가능하면 영어로 준비해보는거도 좋지 않을까 하는 생각이에요. + 파비앙은 학회실이 생기면 - [김태진]
          * ㅎㅎㅎ 영어덕분에 재학생들도 다들 멘붕했답니다. 재밌었다니 다행이네요. ㅋㅋ 다만 이젠 그만큼 영어로 하진 않을거같아요 -[김태진]
  • 제로페이지의문제점 . . . . 5 matches
         현재 ZP 에서 '주력으로 다루는' 분야는 없는 중이다. 이는 [제로페이지의장점]이 되기도 하지만, 한편으로는 . 이전에 Netory 가 생겼을때 당시에, Netory 를 열었던 사람중의 한명에게서 '제로페이지는 너무 거대해보인다' 라는 말을 듣기도 하였다. 글쌔? 사람 수가 몇명이나 된다고 '거대해'보였을까? 그래서 마저 물어보니 '주제에 대해서 모든 것들을 다룬다. 이는 주변에 새 학회를 만드는 입장에서는 고민이다.' 라고 웃으며 이야기했던 기억이 난다. (참고로 지금 Netory는 네트워크와 Ad-hoc & 유비쿼터스 쪽으로 상대적으로 깊이를 다루는 학회인 중이다.) 적절한 [선택과집중] 이 필요하지 않을까.
         99학번들의 경우 1학년때 여름방학때는 C++ & API 스터디를(15명이 넘었던걸로 얼핏 기억), 그 이후에 좀 한풀 꺾이다가 이전 스터디 멤버중 5-6명이 MFC 스터디를 진행하였다. 이 또한 시험기간때 이후 잠정적으로 중지되었지만, 스터디 한 만큼만은 멤버들에게 지식으로 남았다. 그리고 그중 3명은 매일 금요일마다 밤새는 날을 만들기도 하였으며, 혹자는 이상엽씨 배개책을 버스에서 완독하였다고 전해진다.
         학기중 연속적으로 모여서 진행하는 스터디는 물론 어렵다. 하지만, 일주일 중 하루를 모이는 날로 잡고, 시험때같은 경우에 해당 스터디 목표치를 적게 잡되, 끝까지 이어 가고 '명확히 종료'하는 것을 목표로 삼는다면 가능하리라는 생각을 해본다.
         [임인택]은 어떤 스터디 또는 프로젝트를 진행한다고 했을때(위키에 페이지를 만들었을때) 같이 참여할 사람이 없어 접은 경우가 몇번 있었다. (물론 충분히 혼자 진행할 수도 있었지만 사람들과 같이 진행해보고 싶었다) 이유를 물어보면 '''공통적으로''' ''공부좀 해야 그걸 할 수 있을것 같아요'', ''제가 그걸 하기엔 실력이 조금 부족한것 같네요'' 라고들 말한다. 이러한 친구들은 스스로 제약을 많이 거는 것 같다. 자신을 발전시키기 위해 스터디나 프로젝트를 진행하는 것인데, 자신이 발전되어 있지 않아서 스터디나 프로젝트에 참여할 수 없다는 뜻으로 받아들여도 되는걸까?
         요새 『해커, 그 광기와 비밀의 기록』을 읽으면서 하는 생각입니다. 피시실에 항상 누군가가 있어서 같이 작업하거나 작업 기록을 공유할 수 있다면 학회실 같은 분위기가 나지 않을까요? 실제로 구피에는 상주(?)하시는 분들이 계십니다. --[Leonardong]
  • 주민등록번호확인하기/조현태 . . . . 5 matches
          if (47<number && number<58) //입력받은 값이 숫자인지 확인한다.
          if (12==cursur)//마지막 값인지를 확인한다.
          if ((11-sum%11)%10==number) //올바른 주민번호인지를 확인한다.
          }else if (BACK_SPACE==number) //입력받은 값이 백스페이스인지 확인한다.
         [LittleAOI] [주민등록번호확인하기]
  • 지금그때2004/회고 . . . . 5 matches
          * 해당 학회 게시판에 '지금그때' 에 대한 홍보가 하나도 없었습니다.(Netory의 경우는 행사 전날 급하게 올린 공지글이였고, Netory 에서 오신 분들은 패널을 맡아주신 선호형 외에 없었습니다.)
          * JStorm 의 경우 또한 마찬가지입니다.
          * 할 수 있다면, 리허설때 패널을 맡으실 분들을 일부 초청하는 방안도 생각. (보통은 쉽지 않으나, 올해처럼 재학생인 패널도 있으므로, 그러한 사람들에게는 가능하지 않을까)
          * JStorm 이나 Netory 의 경우 해당 소속의 한명에게 이야기하는 식으로 하는 소극적인 전달이 아닌, 1주일전 해당 학회 게시판에 공지를 적고 오실분들이 어떻게 연락을 해야 하는지, 학회 소속원으로의 연락은 어떻게 해야 하는지에 대한 명시적인 피드백을 받아야겠습니다. 그리고 최소한 해당 학회 소속원과 2회 이상의 전화연락이 필요하다 봅니다.
          * 각 학회의 경우도 가장 전달이 잘 되려면 정기 모임(둘 다 매주 수요일 즈음)이전에 연락하거나, 정기 모임때 홍보할 사람들이 직접 참여하여 설명하는것이 좋겠다.
  • 지금그때2005/회의20050318 . . . . 5 matches
          정말 질문하고 싶은 경우 개인당 1회로 질문권 발동
          메뉴판에 없는 질문이 하고 싶은 경우 포스트 잇에 적음
          새로운 질문이 등록된 경우 주사위를 굴리기 전 웨이터가 모두에게 질문을 알려줌
          한 질문에 대해 7분이 넘는 대답을 하는 경우
         오신다는 선배님들 확인 연락하기
  • 프로그래밍십계명 . . . . 5 matches
          *너의 컴퓨터는 1보다는 0을 좋아 하니라. 배열의 첨자가 그 범위를 넘지 않을지 손 댈 때마다 따져 보아라. 수식에 1을 더하거나 뺄 때에는 늘 긴장하라. 너의 프로그램은 단지 한 번 덜해서 틀리고 한 번 더해서 다운되느니라.
         5. 항상 모든 경우의 수를 고려하고 섣불리 생략하지 말지어다.
          *절대로 일어나지 않을 일은 반드시 일어나고, 가장 드물게 일어날 일이 가장 너를괴롭히리라. 그러하니 언제나 논리에 구멍이 없는지 꼼꼼히 따져 보고, if를 쓸 때에는 else부터 생각하라.
          *지금 그 매개 변수가 결코 가질 수 없다는 값을 내일부터는 가지리라. 그러하니 매개 변수값이 올바름을 항상 검사할지어다. 그렇더라도 처리 속도가 문제가 되는 경우는 예외이니라.
          *컴파일러의 경고는 모두 켜 두어라. 경고는 곧 오류이니라. 오류를 알리는 함수의 결과를 확인하지 않는 우를 범하지 말지어다. 모든 파일 입출력과 모든 메모리 할당은 조만간 실패할 것이라.
  • 프로그래밍잔치/첫째날후기 . . . . 5 matches
          * 만일 사람들이 Courage 를 내어서, 다른 사람들 페이지에 대해서 구조조정을 빈번하게 해준다면, 계층위키가 많이 필요하지 않을것이다.
          * 개인 페이지에 대해서 '말없이 고치기' 의 경우 해당 사람의 기분을 상하게 할 수도 있다.
          * 처음으로 어떤 언어를 접했을때 그 언어를 보는 기준은 지금까지 내가 알아왔던 언어이다. 예전에 알았던 언어에 있던 구문이 이 첨 보는 언어에서는 어떻게 할 수 있나 살펴 보는 것이다. 그 원하는 기능이 이 첨보는 언어에서는 없을 수도 있고 대신 다른 기능이 있을수도 있는데. -_- 이번에 Haskell이라는 언어를 봤을때 이것도 지금까지 언어들이랑 비슷 비슷할거라고 만만하게 생각했었다. 그래서 지금까지 짜왔던 방식으로 해볼라고 생각했다. 그런데 잘 안되었다. 이 언어는 그 밑바탕에 깔려 있는 개념이 달랐던 것이다. 그래서 그런식의 접근은 좋지 않을 수 밖에 없었던 것이다. 이렇게 다른 패러다임을 바탕으로 하는 언어를 접하게 된것은 신선한 충격이었다. - 상협
          -- 어느정도 Python 을 익숙하게 써본 뒤, Python 이전에 썼던 언어들과 비교해보면 각 언어들을 더 잘 비교해볼 수 있지 않을까 생각해. 요새 자바프로그래밍을 주로 하면서 느꼈던건, '만일 자바가 인터프리터 쉘에서 실행되는 언어라면, 나의 프로그래밍 작업 방식은 어떻게 바뀔까?' 하는것. ["Python"], ["Jython"] 을 꾸준히 쓰면서, 컴파일언어에서 느끼지 못한 재미를 (즉각적으로 결과 반응이 올때 특히!) 느껴서..~ --["1002"]
          * 우선 위키에 글을 올릴 수 있는 용기를 만땅(?) 채울 수 있었다. 앞으론 '세여니'의 글들을 많이 볼 수 있지 않을까나??
  • 하드웨어에따른프로그램의속도차이해결 . . . . 5 matches
          * 우리가 만든 프로그램이 어떤 하드웨어에서던지 일정한 속도로 돌아가기를 바라는 경우가 있다. 특히 게임을 만드는 경우가 대표적인 예이다. 그러한 경우 어떠한 해결책이 있는지 알아 보면 좋을거 같다. 여기에 그 해결책들을 적어 보고 잘못된 방법은 고치기도 하면서 좋은 방법을 찾으면 좋겠다.
          * 궁금한게 있는데, ["MFCStudy_2001/MMTimer"] 로 안된단 말이야? 가장 빠른걸로 알고 있어서, 동작 제어는 타이머단에서 하고, loop에서 열심히 그림 그려서 fliping만 해주면 되지 않을까? 낮에는 경황이 없어서, 그냥 멀티미디어 타이머 이야기만 했는데, winamp 같은 시간에 의존적인 프로그램들도 이 타이머를 사용해서 말이지. --["neocoin"]
          * 허허.. 인스톨 과정에 재컴파일을 넣으면 되지 않을까 ;; 소스배포! 그것이야말로 남자(?)의 로망.. --["zennith"]
  • 1thPCinCAUCSE/null전략 . . . . 4 matches
         null 팀의 경우 B 문제 하나를 풀었고 (1시간 5분 정도 소요. 패널티 없음), A 번 문제를 계속 시도하던중 시간초과.
         ["1002"]가 5분 지각을 했습니다.; 암튼, 35분에 시작을 했고, 일단 5분의 시간을 두고 ["neocoin"] 과 ["1002"] 는 문제들을 읽어나가기 시작했습니다. 한글 문서였기 때문에 3개의 문제를 훑는데에도 5분이면 충분하더군요. ["neocoin"] 은 B번을, ["1002"] 는 A번을 일단 읽고, C 번에 대해서는 같이 읽었습니다. 그리고 미리 문제출제자쪽에서 난이도를 C > A > B 임을 언급했습니다. 문제를 읽어나가면서도 일단 B의 경우가 바로 계산이 나올 것 같아서 B 를 먼저 해결하기로 선택했습니다. 그 다음에는 문제에 대한 이해도가 상대적으로 높았던 A번을 해결하기로 했습니다.
         Sample 로 제공한 데이터들을 만족시키는 코드는 작성하였으나, 여전히 변수들이 다 뽑아져지지 않아서, 임의의 결과데이터 (100인 경우) 에 대해 예상되는 결과를 생각하고 코드를 작성한뒤, 코드와 결과들, 코드로부터 발견되는 변수들을 토대로 연습장에 기록을 했고, 그러던중 ["neocoin"] 이 일반화 공식을 찾아내었습니다.
         문제를 풀때 우스개로 이야기했던것이 '수학자의 접근이냐 공학자의 접근이냐'(페르마의 마지막정리 책에 나왔던 예. 즉, 연역/귀납). 이런문제인 경우 문제 풀기전 '어느쪽 접근이 더 유용할까' 궁리를.; 개인적으론 연역이 약해서 후자를..; --["1002"]
  • 2011년독서모임 . . . . 4 matches
          * 저번 독서 모임 때 송지원 학우가 읽었던 책을 읽게 되었는데, 읽으면 읽을수록 서로의 문화에서 가지고 있는 가치관이 다르다 보니 어떻게 생각하면 어이가 없는 논리를, 그러면서도 참 배울게 많은 논리들이 있는 것을 볼 수 있었습니다. 이 책에는 류시화 작가가 인도에 가서 대한민국이라는 사회에서 일반적으로 통용되는 가치관이랑 인도라는 사회에서 일반적으로 통용되는 가치관의 차이로 인한 에피소드가 많았는데 만약 인도인이 대한민국에 와서 그들이 가지고 있는 철학을 가지고 이야기 하려면 류시화 작가가 인도에서 겪었던 것과 같은 에피소드들이 책으로 나오지 않을까 라는 생각도 하게 되었습니다.
          * [강소현] - 2000년 5월 21일 한국 최초로 발생한 부모 토막살인사건. 당시에 정말 많이 이슈가 되었다고 하는데, 제가 살던 동네에서 일어난 일인데도 조금밖에 기억이 안 나네요ㄷㄷ 책은 범죄자인 그 분이 썼던 일기들을 주제에 맞게 배치하고 그 일기를 심리학적으로 분석하는 형식으로 이루어져 있었습니다. 어렸을 때부터 부모한테 학대받으면서 커서 사랑이 뭔지, 사람을 어떻게 대해야 하는지 몰랐던 그 분은 사람들이 자기를 욕하는 게 당연한 반응인 줄 알았다고 합니다. 교회에서 자신에게 다가와주는 사람에게 고마워하면서도 다가올 수록 피하려는 이중적인 행동을 했지요. 어떻게든 핑계를 대서 빠지고, 자기합리화하고, 나는 욕을 먹는 것이 당연하다는 마인드가 깔려있기 때문에 학교에서도 군대에서도 적응을 하지 못합니다. 살인 사건 후 재판 때 형이 "부모님이 직장상사가 부하에게 하는 정도의 최소한의 배려와 관심만 보였어도 이런 일은 일어나지 않았을 것이다."라고 한 말이 인상깊었어요. 물론 형처럼 부모와 계속 반목하다 가출을 할지언정 살인이 일어나지 않는 경우도 있지만서도... 아동학대나 관심의 중요성에 대해 무언가 느낄 수 있었어요.
          * [김태진] - 으아니 제가 제일 마지막에 후기를 쓰다니.. 전 이책을 보니 뭐랄까 제가 어릴때 한번쯤 상상했다거나 주위에 일어나는 일들을 약간 각색해서 새롭게 보여주는 느낌이 들었어요. 사실 약간 소외랑은 거리가 있는거 같긴하지만..(이 책에서 구심점으로 나오는 두명은 소외되있긴 하지만) 친구가 되기 직전에 서로간의 소외(--?)라고 할 수 있지 않을까요? 그냥 아는 애이던 둘이 친구가 되기까지를 보여주는게 참 신선했네요.
          * 갑자기 생각난건데, 올해 자신이 읽은 책들이 어떤 것이 있었는가 한번 정리해보는거도 좋지 않을까요?(독서모임에 읽은것 이외라두요)
  • 2thPCinCAUCSE . . . . 4 matches
          * 프로그램의 실행시간이 일정시간(예: 10초)을 지나도 끝나지 않을 경우 틀린 문제가 됩니다.
          * 컴파일 error, 실행 시간 error , 출력 포맷이 문제에서 정한 것과 다른 경우에도 틀림.
          * 제출한 답안이 틀렸을 경우, 매번 일정한 penalty 점수 (10점)를 받게 된다.
  • 3rdPCinCAUCSE . . . . 4 matches
         - 프로그램의 실행시간이 일정시간(예: 10초)을 지나도 끝나지 않을 경우 틀린 것임.
         - 컴파일 error, 실행 시간 error, 출력 포맷이 문제에서 정한 것과 다른 경우에도 틀림.
         아마 이전에 FourBoxes 를 풀어본 사람의 경우는 ProblemB 는 거저먹기가 생각. (재밌는건 ProblemB 의 첫번째 예제 입력 데이터조차도 마소나 FourBoxes 페이지의 내용과 똑같다. 마소의 관련 문제나 정보 올림피아드 문제은행의 것을 그대로 쓴 것이 아닌가 생각) 난이도는 전번보다 더 쉬워지고 시간도 충분하게 주어진 듯 하다.
  • 5인용C++스터디/멀티미디어 . . . . 4 matches
         hmod : 리소스에 있는 Wave파일을 연주할 경우 리소스를 가진 실행파일의 핸들인데, 그 외의 경우는 NULL로 준다.
          사운드 파일을 연주하는 것은 사용하기는 간단하지만 연주할 때마다 디스크에서 사운드 파일을 읽어와야 하므로 반응 속도가 느리다. 따라서 이 경우에는 사운드 파일을 리소스에 포함시켜 놓고 리소스에서 읽어서 연주하는 방법으로 하는 것이 좋을 것이다.
         hWndParent: 부모윈도우를 지정한다. NULL일 경우, 별도의 윈도우로 열린다.
  • BuildingWikiParserUsingPlex . . . . 4 matches
         처음에는 Wiki 에서 Tag 에 대해 Tagger 클래스를 만들고, link 를 걸어주는 부분에 대해 AutoLinker 를, Macro 에는 MacroApplyer 를 각각 만들어주었다. 그러다가 문제가 생겼는데, 태그중에 그 영향력이 겹치는 부분이 생겨나게 된 것이다. 즉, 예를 든다면 Macro 의 경우 CamelWord 로 이름지어지기도 하는데, 이는 AutoLinker 의 apply 를 거치면서 archor 태그가 붙어버리는 것이다.
         전자의 경우 각각의 Class Responsibility 들을 유지한다는 장점이 있지만, AutoLinker 에서 원래 생각치 않았던 한가지 일을 더 해야 한다는 점이 있겠다.
         후자의 경우 클래스가 커진다는 단점이 있지만, 의도한 lexical 들만 표현된다는 점과 1 pass 로 파싱이 같이 이루어질 수 있다는 장점이 있다.
         그러나......~ 후자로 수정하는데 40분도 안걸리다.; 작업으로 본다면 Parser 두개의 lexicon 을 합치는 작업임에도 불구하고, 그 안정성도 보장받으면서 parser 에서 line 단위 자르기 부분까지 수정하였다. 매 번 수정할때마다 테스트를 돌리면서 확인했기 때문에 그 결과가 보장이 되었다. Text Processing 에서 이러한 부분에 대한 TDD의 파워는 정말 크다란 생각이 든다.
  • ClassifyByAnagram/김재우 . . . . 4 matches
          Console.Error.Write( "Elapsed: " );
          Console.Error.Write( elapsed.Seconds );
          Console.Error.Write( "." );
          Console.Error.WriteLine( elapsed.Milliseconds );
  • ComputerGraphicsClass . . . . 4 matches
         [1002] 가 봤던 OpenGL 입문서. 간결한 설명과 실제로 입력해보고 바로 확인할 수 있는 간결한 예제가 장점. 약 200여페이지로 필요한 내용만 간결하게 들어있는게 장점이다.
         C++ 코딩에 자신이 없는 사람의 경우 이 책의 맨 앞에 있는 Vector 클래스와 Matrix 클래스 코드를 이용해보기를 권함. 책 설명은 쉬우나 중간중간 설명중 좀 아쉬운 부분이 보이긴 함. (ex : 그래픽스 파이프라인 부분인데 박스 설명은 CPU 파이프라인 설명시의 예 라거나, A* 부분은 설명이 너무 부족)
         실제 수업의 경우는 OpenGL 자체가 주는 아니다. 3DViewingSystem 이나 Flat, Gouraud, Phong Shading 등에 대해서도 대부분 GDI 로 구현하게 한다.(Flat,Gouraud 는 OpenGL 에서 기본으로 제공해주는 관계로 별 의미가 없다)
         다른 과목(DB, Network)에 비해서 좀 외진(?) 학문이랄까, 혹은 '연구스타일'의 학문이랄까. DB나 Network 이라면 현업에 대해서 이미 많은 일을 하고 있지만, CG 의 경우는 상대적으로 덜하다.(Game 분야정도? 하지만 Game 분야도 생각보다는..) 그래서 그런지, DB 나 Network 에 비해서 상대적으로 어렵게 느껴졌다.
  • CxxTest . . . . 4 matches
         C++ 의 경우는 언어차원에서의 리플랙션을 지원하지 않기 때문에 테스트를 추가하는 부분이 자바나 파이썬 등에 비해 상당히 귀찮다. 그에 대한 대안으로 [CUT] 등의 C UnitTestFramework 의 경우 외부에서 Perl 등으로 작성한 스크립트언어로 테스트실행과 관련한 Runner 를 코드제너레이팅하는 방법을 쓰고 있다.
         [1002]의 경우 요새 CxxUnit 을 사용중. 밑의 스크립트를 Visual Studio 의 Tools(일종의 External Tools)에 연결시켜놓고 쓴다. Tool 을 실행하여 코드제너레이팅 한뒤, 컴파일. (cxxtestgen.py 는 CxxTest 안에 있다.) 화일 이름이 Test 로 끝나는 화일들을 등록해준다.
         단점이 있다면 테스트 상속이 안된다는 점이다. 개인적으로 MockObject 만들어 인터페이스 테스트 만든뒤 RealObject 를 만들어 테스트하는 경우가 많은 만큼 귀찮다. (테스트의 중복으로 이어지므로) 어흑.
  • DPSCChapter3 . . . . 4 matches
          하지만, 두 경우에 자동차를 생성하기 위한 코드와 그것의 컴포넌트 하위 부분은 여전히 같다. 즉, 모든 CarPartFactory 클래스들은 동일한 메시지 프로토콜을(다형성)을 구현하기 때문에, 팩토리 클라이언트는 팩토리 타입이 무엇인지 상관하지 않고 호출을 할 수 있다. 그것은 단지 팩토리 프로토콜에 의해 제공되는 일반적인 메시지를 전송한다.
          다형성의 힘 때문에, 클라이언트는 코드 구현을 한번만 하면된다. ABSTRACT FACTORY PATTERN을 사용하지 않을 경우, 자동차 생성 코드는 다음과 같이 보일 것이다.(아주 비효율적인 코드)
          따라서, CarAssmebler를 만들기 위한 자동차 종류가 무엇이고 그 하위 부분들이 무엇을 해야하고, 그것의 실제 부분의 인스턴스가 무엇을 수행해야 할지를 결정한다. ABSTRACT FACTORY 해결은 우리가 CarAssembler 객체 밖의 모든 행동들을 추상화시킨다. 그리고 팩토리로 분리한다. 특별한 자동차 팩토리로 CarAssembler 확인을 한 후에, CarAssembler는 간단하게 구체적인 자동차와 하위 부분을 만들기 위한 팩토리를 호출한다.
  • DiceRoller . . . . 4 matches
          * Shift+Enter가 안된다. -> 원래 불가능 하다는 결론..(발생시킬수는 있어도 창을 끌러올려야 한다.)
          * 자동 복구 루틴(방이 깨졌을 경우에)를 구현한다.
          * 혹시 메모리상의 값을 얻어와서 해결 할 수 있지 않을까를 생각해 보고 있다. 메모리에 접근 하는 방법은 없을까..ㅡ.ㅡ?
         오.. 재밌는거 하고 있네~ 근데 주사위의 잔영을 제대로 안봐서 그런데, 창 모드로 게임이 실행되나 보지? DirectX 를 쓴다면 일반 윈도우 메세지 방식으로 처리하기 힘들지 않을까 함. (근데 해당 기능들 잘 되는 것 보니까 뭐.. 별 문제 없는 듯 하군~) --석천[[BR]]
  • EightQueenProblem/nextream . . . . 4 matches
         기본 아이디어는 한 라인씩 진행해 가면서 현재 라인 선상에서 X좌표값을 바꿔가며 위에 있는 퀸들에 의해 위협을 받는지 검사해서 안전한 경우에는 계속 다음 라인으로 진행하고, 아닌 경우에는 철수하는 것입니다. 위협여부에 대해서는 같은 세로선상이거나, 대각선인 경우는 X, Y 좌표의 합과 차가 각각 동일한 것이 있는지를 조사하는 것으로 만들었습니다.
         결과물 확인하기 좋게 display 부분을 약간 수정해봤습니다. --[1002]
  • EightQueenProblemSecondTryDiscussion . . . . 4 matches
         디자인하면서, 가장 의문이 들었던 부분이 출력과 관계된 부분이었습니다. EightQueenProblem 자체가 출력이 필요한 문제인지, 아닌지로 시작된 고민에.. 결국 '출력이 필요하다' 라고 결론을 내리게 되어, 출력을 원할경우, 인자로 출력 소스를 넘겨주면 지시한 곳으로 출력하고, 부가적으로 output format을 지원하는 방식을 채택하였습니다.
         제가 보기에 현재의 디자인은 class 키워드만 빼면 절차적 프로그래밍(procedural programming)이 되는 것 같습니다. 오브젝트 속성은 전역 변수가 되고 말이죠. 이런 구성을 일러 God Class Problem이라고도 합니다. AOP(Action-Oriented Programming -- 소위 Procedural Programming이라고 하는 것) 쪽에서 온 프로그래머들이 자주 만드는 실수이기도 합니다. 객체지향 분해라기보다는 한 거대 클래스 내에서의 기능적 분해(functional decomposition)가 되는 것이죠. Wirfs-Brock은 지능(Intelligence)의 고른 분포를 OOD의 중요요소로 뽑습니다. NQueen 오브젝트는 그 이름을 "Manager"나 "Main''''''Controller"로 바꿔도 될 정도로 모든 책임(responsibility)을 도맡아 하고 있습니다 -- Meyer는 하나의 클래스는 한가지 책임만을 제대로 해야한다(A class has a single responsibility: it does it all, does it well, and does it only )고 말하는데, 이것은 클래스 이름이 잘 지어졌는지, 얼마나 구체성을 주는지 등에서 알 수 있습니다. (Coad는 "In OO, a class's statement of responsibility (a 25-word or less statement) is the key to the class. It shouldn't have many 'and's and almost no 'or's."라고 합니다. 만약 이게 자연스럽게 되지않는다면 클래스를 하나 이상 만들어야 한다는 얘기가 되겠죠.) 한가지 가능한 지능 분산으로, 여러개의 Queen 오브젝트와 Board 오브젝트 하나를 만드는 경우를 생각해 볼 수 있겠습니다. Queen 오브젝트 갑이 Queen 오브젝트 을에게 물어봅니다. "내가 너를 귀찮게 하고 있니?" --김창준
         다시 머리가 아파오기 시작합니다. 이번에 ''자를 수 있는데로 잘라보자''라고 결심을 하게 된 배경중 하나가, NQueen2 에서 자신의 영역을 뛰어넘는 Manager가 되버리는 경우에 대한 이야기가 있어서 였습니다. 그렇다면 역으로, 위에서 superman과 object의 개념이나 경계는 모호해지는게 아닌가요? 그렇다면, Player가 따로 있는 개념보다는 Board에서 처리하는게 더 OO적인가요?
         제 말을 {{{~cpp mainProgram.runEverything()}}}을 실행하면 모든 게 마술처럼 알아서 실행되게 하라는 뜻으로 오해하지는 않았으면 합니다. 위 superman의 예에서는, 전자의 경우 superman을 제대로 이용해 먹으려면 superman의 내부적 구조를 알아야 합니다. superman의 구현에 종속적이 되는 셈이죠. 하지만 후자는 그게 디커플링이 됩니다. 자기가 매일 가는 길에 있는 도시를 방문하는 것은 superman이 스스로 수행할 수 있어야 할 책임이 있다 이거죠. Queen이라는 객체가 여덟개가 있다고 칩시다. 얘네들한테 "너는 저 여왕을 공격할 수 있니?"하고 묻고 그 결과를 가지고 여왕을 배치하고 하는 것을 하나의 추상(abstraction)으로 묶는 것이 어떨까요? 묻지말고 "시키자"는 것이죠 -- 여덟개의 똑똑한 Queen 객체를 만들고 하나씩 "판 위로 올라가라"고 시킵니다. 이렇게 하면 Board와 Queen에 커플링이 생겨서 문제가 되는 건 아니냐고 했는데, 어차피 Queen은 Board 없이는 별 의미가 없고, 또, 그렇게 하지 않더라도 어떻게든 비슷하거나 혹은 더 큰 정도의 커플링이 존재합니다. 어쨌건, 지금 단계에서는, 더 나은 방법이라기보다 그냥 다른 방법이라고 편안하게 생각하면 좋을 듯 합니다. --김창준
  • EmbeddedSystemClass . . . . 4 matches
         최신 버전의 리눅스를 구해서 할 경우 페도라 Full install 의 경우 큰 문제가 없으나,
         // 실행되는 버전과 커널 컴파일에 필요한 버전이 동일한 버전인지 확인 후 버전을 맞추어 줘야한다.
         // 필요할 경우 다음의 명령어를 통해서 x-window, gnome 을 설치한다.
  • GarbageCollection . . . . 4 matches
         1. 어떻게 앞으로 사용되지 않을 객체를 결정할 수 있는가?
         2번째 경우에 대한 힌트를 학교 자료구조 교재인 Fundamentals of data structure in c 의 Linked List 파트에서 힌트를 얻을 수 있고, 1번째의 내용은 원칙적으로 완벽한 예측이 불가능하기 때문에 시스템에서 객체 참조를 저장하는 식으로 해서 참조가 없으면 다시는 쓰지 않는 다는 식으로 해서 처리하는 듯함. (C++ 참조 변수를 통한 객체 자동 소멸 관련 내용과 관련한 부분인 듯, 추측이긴 한데 이게 맞는거 같음;;; 아닐지도 ㅋㅋㅋ)
         이거 말고도 문제가 상당하다고 하지만, 해석해야하는 관계로;;; 아래 링크에서 확인 바람.
         2번째의 것의 경우에는 자료구조 시간에 들은 바로는 전체 메모리 영역을 2개의 영역으로 구분(used, unused). 메모리를 할당하는 개념이 아니라 unused 영역에서 빌려오고, 사용이 끝나면 다시 unused 영역으로 돌려주는 식으로 만든다고함. ㅡㅡ;; 내가 생각하기에는 이건 OS(or VM), 나 컴파일러 수준(혹은 allocation 관련 라이브러리 수준)에서 지원하지 않으면 안되는 것 같음. 정확하게 아시는 분은 덧붙임좀..;;;
  • Gof/Strategy . . . . 4 matches
          * linebreaking이 필요한 클라이언트이 그 알고리즘을 직접 포함하고 있는 경우에는 클라이언트들이 더 복잡해질 수 있다. 이는 클라이언트들을 더 커지거나 유지가히 힘들게 한다. 특히 클라이언트가 여러 알고리즘을 제공해야 하는 경우에는 더더욱 그렇다.
          * linebreaking이 클라이언트코드의 일부인 경우, 새 알고리즘을 추가하거나, 기존 코드를 확장하기 어렵다.
         StrategyPattern 은 다음과 같은 경우에 이용할 수 있다.
  • GofStructureDiagramConsideredHarmful . . . . 4 matches
         하지만, Pattern에 대한 경험이 부족한 학생들이나 사용자들은 이 사실을 모르고 있다. 그들은 Pattern에 대한 저술들을 너무 빨리 읽는다. 단지 한 개의 Diagram만을 이해하는 것으로 Pattern을 이해했다고 착각하는 경우도 잦다. 이게 바로 필자가 생각하기에는 독자들에게 해로워보이는 GoF 방식의 단점이다.
         GoF 책의 각 Pattern 마다 첨부되어 있는 구현에 대한 매우 중요하고 민감한 해설들은 어떠한가? 이 해설들을 통해서 Pattern이 여러 방법으로 구현될 수 있다는 사실을 알 수는 없을까? 알 수 없을 것이다. 왜냐하면 많은 독자들이 아예 구현에 대한 해설 부분을 읽지도 않고 넘어가기 때문이다. 그들은 보통 간략하고 훌륭하게 그려진 Structure diagram을 더 선호하는데, 그 이유는 보통 Diagram에 대한 내용이 세 페이지 정도 분량 밖에 되지 않을 뿐더러 이것을 이해하기 위해 많은 시간동안 고민을 할 필요도 없기 때문이다.
         엔지니어들에게 있어서 Diagram은 정말 뿌리치기 힘든 유혹이다. 하지만 Gof의 Structure diagram의 경우엔 충분히 많은 내용을 말해줄 수 없다. Pattern들이 다양한 Structure를 가질 수 있으며, 다양하게 구현될 수 있다는 것을 독자들에게 알려주기엔 턱없이 부족하다.
         학문, 더 넓혀서 살아감에 있어 하나의 사실이나 의견을 접할때, 절대적이란 것은 "명제" 나 "진리" 같은 것 외에는 없음을 생각해보면 답을 찾는데 도움이 될 것 입니다. 다만, 눈에 보이는 형태에서는 이를 금방 인지하기 쉬우나, 눈에 보이지 않는 형태이거나(예를들면 지식), 습관적으로 믿을만하다고 생각되는 매체에서 얻은 정보나 이야기에 대해 "경계의 레이더"를 꺼놓거나 미처 알아차릴 경황이 없게 되는 경우를 조심하면 되겠죠.
  • HelpOnCvsInstallation . . . . 4 matches
         == CVS로부터 처음 설치하는 경우 ==
          * /!\ 이 단계에서는 `make` 혹은 `gmake`가 필요합니다. 리눅스 서버 호스팅의 경우 간혹 `make` 혹은 `gmake`를 쓸 수 없는 경우가 있습니다.
          * 이 과정을 건너뛰는 경우에는 한글 메시지가 나오지 않습니다.
  • HelpOnHeadlines . . . . 4 matches
         "="로 시작해서 "="로 끝나는 줄은 섹션의 제목(Heading)이 됩니다. 다섯단계 이상일 경우는 모두 <h5>로 렌더링 됩니다.
          = Heading <h1> 일반적인 경우 사용하지 않습니다. =
          = Heading <h1> 일반적인 경우 사용하지 않습니다. =
         모니위키의 경우 제목줄에 기본 문법을 사용하실 수 있습니다. 모인모인 혹은 DokuWiki에서는 이를 지원하지 않습니다.
  • HelpOnInstallation/SetGid . . . . 4 matches
         보안상의 이유로 웹서버는 php 스크립트를 `nobody, www, apache` 혹은 `httpd`같은 특별히 제한된 계정으로 실행하게 됩니다. 이러한 이유로 [모니위키] 스크립트가 생성하게 되는 여러 파일 혹은 디렉토리는 이러한 특별한 계정의 소유가 되며 진짜 사용자가 소유하지 못하게 되는 일이 발생하고 어떤 경우는 이렇게 만들어진 파일을 읽을수도 지울 수도 없게 됩니다.
         이런 경우를 막기 위해서 `chmod 2777` 대신에 `chmod 777`을 하는 경우도 있으나, 이로서 문제가 모두 해결되지는 않습니다.
         Please see http://www.pmichaud.com/wiki/PmWiki/ErrorMessages
  • HelpOnProcessingInstructions . . . . 4 matches
          * {{{#format}}} ''format-지정자'': 페이지의 포맷을 지정합니다. {{{#!}}}로 시작되는 경우는 공백 없이 바로 포맷-지정자를 씁니다.
          * '''html''': 일반 html (일부 위키에서는 지원되지 않을 수 있음)
         모든 PI는 페이지의 맨 상단에 위치해야 합니다. 특별히 {{{#redirect}}}는 가장 맨 윗줄에 위치해야 합니다. 주석임을 나타내는 {{{##}}}만은 페이지 어느곳에나 쓸 수 있습니다만, 중간에 쓰는 경우에는 `wiki` 포매팅 문서일 경우에만 {{{##}}}가 주석으로 인식됩니다.
  • HelpOnUpdating . . . . 4 matches
         /!\ '''위키를 업그레이드 하기 전에 꼭 백업하세요!''' 특별한 경우가 아니라면 기존의 데이타를 잃게 되거나 하지는 않으나, 아주 사소한 실수로 예전의 데이타를 잃을 가능성도 있습니다. @)
         그렇지 않고 일부 파일을 변경한 경우에는 조금 더 세심한 주의가 필요할 것입니다.
         `wiki.php`, `wikilib.php`는 가장 중요한 위키엔진입니다. 대부분 사용자가 직접 변경해서 사용하는 경우는 아마 이 두개의 파일일 것입니다.
         새로 추가된 옵션은 `config.php.default` 파일에 담겨 있으므로 이 파일을 열어서 확인해 보실 수 있습니다.
  • JavaScript/2011년스터디/3월이전 . . . . 4 matches
          * 서로 다른 챕터를 공부하여 발표하면 남이 공부한 부분은 겉핥기 식으로만 알게 되는 경우가 많아서.
          * 다른 참가자들이 오지 않을때는 3시 10분까지 기다린다.
          * 함수 내부에서 arguments 객체에 함부로 접근할 경우 생길 수 있는 문제점
          * 함수 안에 익명함수 중복으로 쓸 경우 즉시 호출하거나 변수에 넣어 호출 가능하게 만들어야 한다.
  • Linux/RegularExpression . . . . 4 matches
         * (선행문자가 없는 경우이므로 임의의 문자열 및 공백 문자열도 해당됨)
         - givenString을 "string1stringAstring2stringBstring3 ... string9stringI" 로 주어져 있다고 하자. 이때 stringA, stringB, ... , stringI는 NULL 이어도 상관이 없다(즉 givenString은 "string1string2string3 ... string9" 인 경우임).
         - givenString이 위와 같이 주어진 경우,
         - 이때 pattern1이 string1에서 발견한 패턴은 $matched[1]에 저장되고, pattern2가 string2에서 발견한 패턴은 $matched[2]에 저장되고, ..., pattern9가 string9에서 발견한 패턴은 $matched[9]에 저장된다. PHP3의 경우 ereg에서는 최대 9개 까지의 pattern을 찾을 수 있도록 설정되어 있음에 유의하자.
  • MFC/Control . . . . 4 matches
         하나의 컨트롤은 클래스와 연계될 수도, 안될 수도 있다. 정적 컨트롤의 경우 클래스가 필요없을 것 같지만 CStatic 이라는 클래스를 통해서 모양을 변경하는 것이 가능하다. 마찬가지로 버튼 컨트롤들의 경우도 대부분 Dialog 객체를 통해서 처리가 된다. CButton 클래스의 경우에는 컨트롤을 관리하는데있어서 객체가 필요할 경우에 이용하게 된다. 이러한 모든 컨트롤들은 모두 윈도우의 일종이기 때문에 CWnd 에서 상속된 클래스를 이용한다.
  • MFC/ObjectLinkingEmbedding . . . . 4 matches
         서로 다른 응용프로그램들이 프로그램 안에 있는 데이터를 편집할 수 있도록 하는 프록램을 작성할수 있도록 하는 메카니즘이다. (예를 들자면 오피스웨어에서 포토ㅤㅅㅑㅍ에서 수정하던 그림을 특정 포맷으로 변환하지 않고 바로 붙이기 하는 경우와 같은 경우....)
          || OnChange() || 임베드된 객체에 변경사항이 존재하면 그 항목의 서버에 보고될 때 프레임웍에 의해 호출된다. 일반적인 경우는 임베드된 객체를 다시 그릴때이다. ||
          컨테이너측에는 COleDocument, COleLinkingDoc 이 존재한다. 전자의 경우는 in-place 활성화를 지원하며, 후자는 링크방식을 지원한다.
  • MockObjects . . . . 4 matches
         사용 예1) 여러 사람이 프로그래밍 할때, 독립된 프로그램이 아닌 모듈별로 프로그램을 만들고 있는 경우. 이럴때 해당 모듈을 작성하고 테스트 코드를 만들려고 해도, 다른 모듈의 의존성 때문에 진행이 어렵게 된다. 아직 완성되지 않은 의존성을 가진 모듈을 MockObject로 만듬으로서 해당 모듈을 만드는 동안의 의존성문제를 해결할 수 있다.
         MockObject 는 어디까지나 가짜객체이다. 실제 테스트를 할때에는 MockObject를 이용한 경우와 실제의 객체를 이용했을때의 경우 둘 다 고려해야 한다.
         그리고 위와 같은 경우 UnitTest 코드의 중복을 가져올 수도 있다. 이는 상속과 오버라이딩을 이용, 해결한다.
  • NUnit/C#예제 . . . . 4 matches
          [Test] public void 파일확인()
          1. Argument에 {{{ $(ProjectDir)\bin\debug\$(TargetName).exe }}} 라고 적는다. ( 보통은 디버그 모드에서서 컴파일 하므로 폴더가 debug이다. 릴리즈인 경우에는 release로 바꾸면 될 듯)
          1. Show Command Containing 밑에 있는 박스에서 방금 추가한 실행도구를 선택한다. 이 때 명령의 이름이 나오지 않으므로 NUnit을 실행하는 것이 몇 번째 실행 명령(External Command)인지 알아두어야 한다. 처음 실행 도구를 추가했다면 아마 External Command8 일 것이다. (VS2005경우는 외부명령1이 첫번째 External Tools임)
          1. 확인을 누르고 이제 단축키만 누르면 테스트를 할 수 있다.!!
  • NUnit/C++예제 . . . . 4 matches
          * 속성 페이지 가서 C/C++로 간다음, #using 참조확인에다가 NUnit이 깔린 폴더의 bin 폴더를 넣어준다.
         평소대로 하자면 이렇게 하면 될것이다. 하지만 현재 프로젝트는 [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmxspec/html/vcmanagedextensionsspec_16_2.asp Managed C++ Extensions]이다. 이것은 C++을 이용해서 .Net을 Platform위에서 프로그래밍을 하기 위하여 Microsoft에서 C++을 확장한 형태의 문법을 제안된 추가 문법을 정의해 놓았다. 이를 이용해야 NUnit이 C++ 코드에 접근할수 있다. 이경우 NUnit 에서 검증할 클래스에 접근하기 위해 다음과 같이 클래스 앞에 [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmxspec/html/vcmanagedextensionsspec_16_2.asp __gc] 를 붙여서 선언해야 한다.
         이 경우 Unmanaged C++ 코드에 대해서 적용할수 없다. 즉, MFC로 완성된 프로그램이라도, .Net Platform 이 없는 곳에서는 작동할 수 없다. (로직에 __gc 가 존재하므로)
         그것을 떠나서, MFC를 쓰면서 테스트를 하는 것이 의미 있어 지려면, MFC 로 작성한 프로그램이 정상 동작하면서, 테스트를 할수 있어야 하는데, MFC Frameworks 이 Managed C++ 모드로 컴파일이 잘되고, 잘 돌아가는지, 이것이 의문이다. 된다면, MS에서 모든 MFC class앞에 __gc가 붙이기라도 한걸까? 혹은 이미 해당 매크로가 존재하지 않을까?
  • POLY/김태진 . . . . 4 matches
          * 가로줄을 층이라 치고, X개로 만드는 것의 경우
          * 이때, 제일 위층을 제외한 것의 제일 위층의 개수가 몇개인지 중요한데, 최상층 개수와 두번째층의 개수에 의해 폴리오미노를 만족하는 경우의 수가 세분화되기 때문이다.
          * (예를들어 최상층 3개, 두번째층 2개(그 아래층은 상관없음)인 경우는 " 최상층 + 두번째층 - 1 ", 즉 4개의 경우가 생기고, 이를 곱해야한다.
  • PrivateHomepageMaking . . . . 4 matches
         이와 마찬가지로 APM 패키지를 통해서 운영하는 것 역시 가능하다. APACHE를 선택할 경우 마찬가지로
         상기의 3가지 종류의 패키지는 서로 혼용이 가능하며 이럴 경우 디자인을 통일하여
         물론 프로그램에 관심이 있는 사람은 이 기회에 게시판으 한번정도 짜보는 것도 나쁘지 않을 것이다.
         || DokuWiki || http://wiki.splitbrain.org/ || PHP 기반, 내가 본거 중에 제일 괜찮다, 데비안의 경우 패키지로 그냥 설치됨 ||
  • ProgrammingLanguageClass . . . . 4 matches
         프로그래밍 언어를 배우는 것은 사고와 표현의 방식을 하나 더 배우는 것이다. 따라서, 설사 해당 언어로 프로그래밍을 할 기회가 별로 없다고 해도, 판이한 언어를 하나 더 배우는 것은 가치있는 일이다. 동시에 무슨 언어를 배우느냐, 어떤 신택스를 익히느냐는 것은 크게 중요하지 않다. 언어는 변하고 사멸하고 신생하며, 유행도 바뀐다. 그보다 그런 언어 저변에 깔려있는 다양한 패러다임을 접하고 충분히 이해하고 적용할 수 있어야 한다. 하지만 이게 가능하려면 구체적인 언어라는 채널을 통하지 않을 수가 없다.
         중앙대학교 컴공과에 컴파일러 수업이 폐강되는 경우가 많은데, 컴파일러와 PL 둘 중 하나는 프로그래머가 되건, 전산학자가 되건 반드시 필요한 교양이다.
         아쉬운 부분은 프로그램 언어론이란 과목임에도 불구하고, 설명의 비중은 많이 쓰이는 언어일수록 높았던 점입니다. 함수형언어(FunctionalLanguage)는 기말 고사 바로 전 시간에 한 시간만에 끝내려다가, 그나마 끝내지도 못하고 요약 부분만 훑었습니다. 그 밖의 종류에 대해서는 거의 절차적 언어, 특히 C계열 언어를 설명하다가 부연 설명으로 나오는 경우가 많았습니다. 논리형언어(LogicLanguage)에 대한 설명은 거의 못 봤습니다. 어차피 쓰지 않을 언어라고 생각해서일까요.--[Leonardong]
  • ProgrammingLanguageClass/Report2002_1 . . . . 4 matches
          * <identifier>와 <constant>의 경우에는 찾아진 lexeme을 함께 출력한다.
          * 문장이 문법에 적합하지 않으면 관련 오류 메시지를 출력한다. 그 다음 오류를 발생시킨 lexeme을 제거 또는 첨가한 후, 파싱을 재개한다. 예를 들어, x = a + + b일 경우, “+” 연산자가 한 개가 더 존재하므로 오류 메시지를 출력한다. 그 다음, “+”기호를 제거한 후 파싱을 계속한다.
          * 데모 시 디스켓에 실행파일을 미리 준비한다(데모 시에 컴파일하는 경우는 감점처리함).
          ERROR : plus-operator
          ERROR : colon
  • ProjectPrometheus/CookBook . . . . 4 matches
         물리적인 모래시계가 없을 경우 사용할만한 모래시계 소프트웨어
          단순하지만 매우 편리한 타이머. 태스크 바에서 남은 시간을 확인 가능
         getParameter 가 호출되기 전에 request의 인코딩이 세팅되어야 한다. 현재 Prometheus의 Controller의 경우 service 의 명을 보고 각각의 서비스에게 실행 권한을 넘기는데, 가장 처음에 request의 characterEncoding 을 세팅해야 한다. 차후 JSP/Servlet 컨테이너들의 업그레이드 되어야 할 내용으로 생각됨 자세한 내용은 http://javaservice.net/~java/bbs/read.cgi?m=appserver&b=engine&c=r_p&n=957572615 참고
         ["Ant"] 를 이용하면 된다. Ant 의 경우 컴파일 & 배포할때 수정된 화일만 덮어쓰기를 한다. CVS & ["Ant"] 조합이면 해결이라 생각.
  • RubyLanguage/Container . . . . 4 matches
          * 길이를 포함한 첨자나 범위 첨자를 사용한 경우, 우변에 복수 개의 값을 취할 수 있다.(line 5, 6)
          * 좌변의 요소개수보다 우변 식이 적은 경우 모자란 부분의 요소는 제거되고 배열의 크기가 줄어든다.(line 7)
          * 좌변에 지정한 요소개수보다 우변 식이 많은 경우 배열의 크기를 늘려서 대입한다.(line 9)
          * 배열 객체끼리는 대응하는 요소가 모두 동일할 경우에 한해서만 같다.
  • RubyLanguage/ExceptionHandling . . . . 4 matches
          * 예외 발생시 throw를 이용해 예외를 발생시키고 catch에서 심볼을 이용하여 예외를 캐치한다.
          * 예외 발생시키기
          * Kernal.raise(또는 Kernal.fail)로 예외를 발생시킨다
  • RubyLanguage/Expression . . . . 4 matches
          * + 연산자는 내부적으로도 자주 쓰이기 때문에, 바꿔버리는 경우 인터프리터가 맛이 갈 수 있음
          * 좌변값과 우변값 개수가 다른 경우
          * defined? 연산자: 매개변수가 정의된 경우 그에 대한 설명을 문자열로 반환하고, 정의되지 않은 경우 nil을 반환
  • ServiceQualityOfYongsanMarket . . . . 4 matches
          용산의 메인 고객은 소비자가 아니므로. 뭔가 핀트를 잘못맞춘건 아닐까; 그리고 용산의 영수증인 경우, 워낙에 이일저일(?) 하는 일들이 많아서 일부러 자유로이 빈 영수증 두었다가 필요할때 상호 도장찍는 경우 많음..--[1002]
          보통 이런경우보다는 기분좋게 물건사는 경우가 더 많았는데, 이날은 정말 짜증이 밀려와, 개인적으로라도 이 가게는 안가려고 리스트업하는겁니다. 흐흐. - 임인택
  • SmallTalk/강좌FromHitel/강의4 . . . . 4 matches
         측할 수 있게 됩니다. 물론 대부분의 경우는 발자취 창의 제목만 보고서도
         문제의 원인을 파악할 수 있습니다. 지금과 같은 경우에는 우리가 내린 명령
         Dolphin의 경우 꾸러미 탐색기나 창맵씨, 자원 탐색기가 있으며, Smalltalk
         언제나 편한 것만은 아닙니다. 어떤 때는 글쇠판이 마우스보다 편할 경우
  • Spring/탐험스터디/wiki만들기 . . . . 4 matches
          * 로그인이 되어있는지 view단에서 확인하는 기능이 필요하다
          * 페이지를 타이틀로 검색 할 경우 어떻게 페이지 타이틀을 받아서 검색을 한 뒤 결과를 돌려주고, 없는 페이지는 새로 만들 수 있게 할까?
          * 컨트롤러 함수에 인자를 다르게 해서 OverLoading하려 했으나 ResuestMapping이 같아서 Spring이 Ambiguous Mapping Exception을 발생시켰다.
          * 이건... 음.. "signup 폼을 담은 페이지를 호출" 할 때와 "사용자의 ID와 PASSWORD를 전달해 로그인 처리를 하는" 경우가 같은 Request Name을 가지게 되서..
  • SubVersion . . . . 4 matches
          * 디폴트인 버클리디비가 깨지는 때가 꽤 흔하고, 그걸 복구하는 게 번거로울 뿐만 아니라 복구가 안되는 경우도 있다.
          윈도우의 경우 TortoiseSVN 을 쓴다면 로컬저장소를 만들고 개발 진행 가능. --[1002]
         [CVS] 얘기를 먼저 안하네. 나의 경우는 [CVS] 를 먼저 쓰게 되었는데. - [1002]
         오늘 처음 사용해보니 CVS보다 좀더 깔끔한 느낌이 이입니다. [tortoiseSVN]을 사용했는데 [CVS]보다 좀더 직관적이지 않나 싶습니다. 소스관리 툴을 처음 사용하는 사람이라면 [CVS]보다 [SubVersion]이 더 좋지 않을까 싶습니다. 다만 [tortoiseSVN]을 사용하니 체크아웃 할 때 보통 5-6번 정도 비밀번호를 쳐야 하네요;; diff, merge 툴을 따로 설정할 수 있습니다. - 이승한
  • TAOCP/BasicConcepts . . . . 4 matches
         E0. [m >= n 인지 확인하기] m < n 이라면, m <-> n 을 교환한다
         Ω에 속하는 xk 에 대하여 k가 가장 작은 정수라면 계산수열은 k단계에서 종료된다고 한다. 그리고 이 경우에 x로부터 결과 xk가 생성된다고 한다.
          A2. 왼쪽에서 오른쪽으로 가면서 흔적이 없는 첫번째 문자를 START라고 한다. 왼쪽 괄호와 그 문자를 출력하고 흔적을 남긴다. 모든 문자에 흔적이 남을 경우 종료한다.
          A4. 오른쪽으로 가면서 CURRENT와 같은 문자를 찾는다. 찾은 경우 흔적을 남기고 A3로 간다. (못 찾고 오른쪽 끝까지 가면 A5로 간다.)
  • TAOCP/InformationStructures . . . . 4 matches
         여태까지는 문제(더 넣을 공간이 없거나, 더 지울 것이 없는 경우)가 없다고 가정했다. 이 문제까지 고려한 과정이 다음과 같다.
         가능한 공간에 리스트가 두 개 있다면 (고정된)bottom을 같이 쓸 수 있다. (p.246 그림 참고) 이런 경우 두 리스트가 메모리를 모두 써버릴 때까지 오버플로우는 생기지 않는다. 이런 형태는 매우 자주 쓰인다.
         n개의 스택이 있는 경우 i번째(1≤i≤n) 스택에 원소를 넣고 빼는 과정을 다음과 같이 적을 수 있다.
          b) ''''아래로 한칸씩 밀기(moving things down)''' a)에 해당하는 k가 없을 경우
  • TdddArticle . . . . 4 matches
         류군 이야기로는 Oracle 의 경우 설치하고 딱 실행하는데만 기본 메모리 200메가 잡아먹는다고 한다. -_-; 로컬 테스트를 위해 HypersonicSql를 쓸만도 하군.; (In-memory DB 식으로 지원가능. 인스톨 할것도 없이 그냥 콘솔에서 배치화일 하나 실행만 하면 됨. 근데, JDBC 를 완벽히 지원하진 않는 것도 같아서, 약간 애매. (ResultSet 의 first(), last(), isLast() 등의 메소드들이 실행이 안됨)
          DeleteMe) - 오라클의 경우 인스턴스당 기본으로 먹는게 보통 200 메가 정도. 즉 기본 외에 자기가 만든걸 더 띄울경우 보통 400 메가 이상을 먹게 되는데 이건 뜰때 얘기고 가만히 냅두면 50 메가 이하로 메모리가 내려감. 물론 윈도우 하에서 얘기임. 나머진 확실하지 않음. 연결이 많아지면 메모리가 다시 올라갈것임. -박준용-
         초반 자동화를 위해 준비할 것들에만 좀 신경을 쓰고, 익숙해진다면 잘 할 수 있지 않을까 생각.
  • TeachYourselfProgrammingInTenYears . . . . 4 matches
         만약 그러한 있고 것이라면, 4년간 대학에서(혹은 대학원에 가, 더욱) 배우는 것.그러면 성적 증명서를 필요로 하는 일자리에 접근하고, 그 분야에 도착해보다 깊은 이해를 얻게 된다.하지만, 학교를 즐길 수 없다고 한다면, (열의가 있으면) 일을 하는 과정에서 같은 체험을 얻을 수 있다.어느 경우이든, 책에 의한 학습만으로는 충분하지 않다.「컴퓨터·사이언스의 교육으로 누군가를 프로의 프로그래머로 하려고 하는 것은, 브러쉬나 그림도구에 대해 배우게 해 프로의 화가로 하는 것 같은 정도 어렵다」라고 The New Hacker's Dictionary(역주5) 의 저자인 Eric Raymond 는 말한다.내가 지금까지 고용한 중에서 최고의 프로그래머의 한 명(역주6)은, 고등학교까지 밖에 나오지 않았다.그렇지만, 그는 많은훌륭한소프트웨어를 만들어, 지금은 자신의뉴스·그룹까지 가지고 있어, 스톡옵션 덕분에, 틀림없이 내가 일생 걸려 벌 수 있는 것보다 좀 더 부자다.
         다른 프로그래머가 일을 끝낸후의프로젝트에 임하는 것.사람이 쓴 프로그램의 이해에 열중하는 것.원래의 코드를 쓴 프로그래머가 근처에 없는 경우, 그 프로그램을 이해하거나 고치거나 하려면 무엇이 필요한가 생각하는 것.당신의 프로그램을, 다음에 다른 사람이 메인트넌스 하기 쉽게 하려면 어떻게 디자인하면 좋은가 생각하는 것.
         「컴퓨터·사이언스」안에, 「컴퓨터」가 있는 것을 잊어서는 안된다.컴퓨터가 하나의 명령을 실행하거나 메모리로부터 1 워드 읽어내거나(캐쉬에 들어가 있는 경우와 그렇지 않은 경우와), 디스크로부터 연속해 데이터를 읽어내거나 디스크상에 새로운 영역을 찾거나 하는데 어느 정도 시간이 걸릴까 알아 두는 것.(대답은 이쪽)
  • VisualBasicClass/2006/Exam1 . . . . 4 matches
         ② ScrollBar는 수평, 수직, 양방향 모드가 있으며, 여러 줄을 사용하는 속성을 설정할 경우, 사용할 수 있다.
         ② 인수들을 서브프로그램에 모두 다 전달하기 부적절한 경우에는 Optional이란 키워드를 사용하면 효과적이다.
         ④ 일반적으로 함수 이름이 F_Name일 경우, 이 함수 내부에는 F_Name = 식 형태의 할당문이 있어야 한다.
         의외로 다른 결과를 내는 경우가 있다.
  • VisualStuioDotNetHotKey . . . . 4 matches
         Ctrl-Shift-Spacebar : 함수이름편집중 '''툴팁'''으로나오는 함수와매개변수설명이 안나올경우, 강제로 나오게
         가끔 연속된 연속기만으로는 부족한경우가 있다. 이럴때, 몇번의 키동작으로 레코딩하여, 이것을 반복하고 싶은경우가있다. 이때 Ctrl+Shift+R 을 누르고, 원하는 동작들을 수행후, 다시 Ctrl+Shift+R을 눌러 종료한다. 이 중간동작을 원하는 위치에서 반복하고 싶다면 Ctrl+Shift+P 를 누른다.
         전체 빌드(프로젝트가 여러개있을경우 모두 빌드)
  • Z&D토론/학회명칭토론 . . . . 4 matches
          * 'Z & D' - 가칭을 살리는 방안. 새로운 이름의 경우 선배들로부터의 맥이 끊기는 것이 되므로 기존의 이름을 합성한 이름으로 가자.
          * 아에 새로운 이름 - 이름문제와 관련하여 입장이 팽팽한 경우의 최후의 방안
          * 기존의 데블스의 모체가 되는 곳이 ZP 이다. ZP 로 합쳐져도 양쪽 선배님들과 관련된 문제들이 발생하지 않을 것이다.
         개인적으로는 현재의 스레드를 전부 지워도 큰 문제가 생기지 않을 것 같지만. 문서구조조정시에는 개인들의 의견들이 왜곡되어서는 안되기 때문에 소심하게 된답니다.
  • ZIM/UIPrototype . . . . 4 matches
         Software for Use와 Contextual Design의 일독을 권합니다. UI쪽(특히 실전)에서는 탁월한 책들입니다. 이 책들에서는 UI 프로토타이핑을 종이를 통해 하기를 강력하게 추천하고 있습니다. 각종 자동화 툴을 써보면 오히려 불편한 경우가 많습니다. 넓은 종이와 다양한 크기의 3M 포스트 잇을 이용해서 버튼 같은 것의 위치를 자유로이 옮겨볼 수 있습니다. 이렇게 만든 프로토타입을 사무실 벽에 걸어넣고 그 앞에서 토론도 하고, 즉석에서 모양을 바꾸기도 합니다. 초기에는 커뮤니케이션 보조 도구로 화이트보드를 많이 사용하기도 합니다. 그러나 한 자리에서 함께 작업할 기회가 적은 경우에는 어쩔 수 없이 전자문서와 이미지에 의존해야겠죠. 제 경우는 주로 스캐너를 이용해서 손으로 그린 이미지 공유를 했습니다. 온라인에서 공동으로 디자인 토론을 할 경우에는 화이트보드가 지원되는 온라인 컨퍼런싱 툴을 씁니다. (e.g. 넷미팅) --김창준
  • ZeroPage_200_OK/note . . . . 4 matches
          * 인증 문제가 걸릴경우 보안이 약화될수 있다.
          * script tag를 읽어 로딩이 끝나면 바로 실행 하기 때문에 여러개를 동시에 불러올경우 전역변수를 이용한 방식은 불가.
          * 위와 같은 형식으로 내려줄경우 클라이언트(요청한 쪽)에서 _callback함수만 정의해두면 로딩이 끝남과 동시에 불리게 된다.
          * Unix에서는 Pipe도 File이므로 static한 file 대신 Pipe를 쓰면 뭔가 다이나믹한게 되지않을까?
  • ZeroPage성년식 . . . . 4 matches
          * 페이스북에서 바로 신청을 하는 경우 문제가 있을수도 있는거 같았아요. 정욱이형이 저번에 된줄 알았는데 안됐길래 다시하라고 해서 됐거든요. -[김태진]
          * 그닥 문제가 없었던걸로 기억하는데 저도 제로페이지 메일에서 신청에 문제가 있다고 보내주신걸 확인했습니다. 메일로 간단한 몇가지 사항과 함께 참가 의사를 밝히면 저희가 관리하는 방법도 있지 않을까요 - [지원]
          * 몇시부터 어떻게 몇 시간동안 진행하는지에 따라 25일도 가능하지 않을까 라는 생각도 드네요. 뭐 그게 아니라면 뒤로 늦추는 거 보다는 일찍 하는 것이 좋을 듯 싶네요. - [권순의]
  • ZeroPage정학회만들기 . . . . 4 matches
          서버보관은 지도교수님 연구실에 자동으로 보관되지 않을까 하는 것이었고
         정학회로 승격되기 위해 여러가지 홍보대책을 세우는 것도 의미있는 일이겠지만, 그 전에 '정학회인 경우 할 일'들을 직접 실천할 수 있다면, 그리고 과 내에서 보기에도 정식학회가 있음으로서 과내 사람들이 이득을 얻게 되고, 정식학회로서의 자격이 있다고 보여진다면, 홍보의 절반이상은 저절로 되리라 생각한다.
          * 과내 학술제 주도 (이건 이번 경우에도.. 늘상 하던일이긴 하고)
          추가로.. 1번의 학회발전에 큰 도움이 될 것이다. 는 '학회발전에 도움이 되어 보다 과에 학회가 기여할 계기가 될 것이다' 등으로 바뀌는 등 설문의 성격을 ''과차원''의 색체가 포함되어야하지 않을까 하는 생각을 해봅니다. : ) --["창섭"]
  • ZeroWiki/제안 . . . . 4 matches
         지금 이 페이지처럼 오래된 내용이 남아있는 페이지를 어떻게 해야할지 논의해보고 싶습니다. 대부분의 페이지에서는 오래된 내용이 쌓여 좋을 때가 많지만 이 페이지 같은 경우 위키에 대한 제안과 논의가 이루어지는 페이지인데 이미 과거에 해결된 제안과 그에 대한 논의를 기록을 남겨놓는 것이 좋은 것인지 잘 모르겠습니다. 그냥 그대로 놔두면 현재 제안과 구분하기 쉽지 않으니까요. 제가 생각하는 선택지는 네가지 입니다.
         === 로그인 할 경우 시작 페이지를 만들자 ===
         저번에 들렀을 때 마지막으로 갔었던 곳에 먼저 가보는 경우가 많네요. 로그인을 하면 마지막에 들렀던 페이지가 뜨게 하면 어떨까요? 아니면 정해놓은 페이지가 뜨게 한다든지요. 마치 인터넷 익스플로러에서 시작 페이지처럼요. -[Leonardong]
         뱃지나 학회지 제작할 때 있으면 좋지않을까요? --[강희경]
  • ZeroWiki에서 언어습관 . . . . 4 matches
         요즘 제로위키 글을 읽다보면, 전자라서 읽다가 그만두는 경우가 종종 발생합니다. 심하게, '글쓴이가 글이 남에게 읽힐때의 고민이 전무하다' 라고 표현할까요? 읽다 보면, 기존에 쓰여진 글들이 매우 딱딱한 문장이 아님에도 채팅과 같은 글들이 밑에 있어서, 딱딱하게 보입니다. 기말고사 시험지에 써있는 낙서, 생각의 흔적들이랄까요? 묘하게 배치된 글들을 보면서, 시간과 공간의 경험이 서로 다른 사람들의 생각과 글들이 융화되기가 참 힘들다는 생각을 가집니다. --NeoCoin
          특히 NoSmok:단락나누기 와 같은 위키 쓰기에 관련한 교육이나 고민을 공유하는 시간이 적은 상태에서 진행방향은 점차 더 달라 지는 것 같습니다. 몇년후 [제로위키]는 상당히 특별한 색깔을 가지게 되지 않을까요? --NeoCoin
          문단의 내용이 확인을 부탁하는 것 같아서 답변 답니다.(그렇지 않다면, 중복 문단의 존재 이유가 없겠지요?) 전자의 문장은 잘 정리하셨습니다. 허나, ''앞으로 이모티콘이 가득한 위키라는 특별한 색깔을 [제로위키]가 가지리라는 의견이시고요.'' 에는 전체 긍정을 할수 없습니다. 아직 예단할수는 없지요. '가득가득'이라니요. 내년 신입 회원이 기대되기는 하지만요. --NeoCoin
         이러니 저러니 해도, 순수한 [자유게시판]으로만 운영되는 것 보다는 지식의 재활용 경우가 많은 것 같습니다. 페이지 상호간에 링크를 걸고, 약간 공적인 성격의 페이지중 [지금그때]나 [데블스캠프2004]의 준비 모습은 한페이지를 계속 키워나가는 모습들을 보이니까요.
  • django . . . . 4 matches
          * 개발이 끝나고 실제로 서비스할 경우에는 apache + mod_python 으로 올려야 한다.
          * html 이 있는 template 에 많은 것을 바라지 말자. 가능하면 view에서 데이터를 거의다 처리해서 template에 넘기는것이 좋다. template에서 받아온 데어터로 리스트와 맵 변수의 첨자(subscriber)로 사용하려고 했는데 안된다. 이러한 경우에는 view에서 데이터를 아예 가공해서 넘기는 것이 좋다.
          * syncdb 해도 admin 에서 추가한 것이 보이지 않을때는 runserver 한거를 중지 시키고 다시 서버를 시작 하면 보인다.
         [예시] /path/to/project/mysite 에 settings.py 파일이 있는 경우
  • django/ModifyingObject . . . . 4 matches
         save메소드는 우선 현재 저장하려는 레코드의 주키를 가지고 데이터베이스를 검색하여 레코드를 삽입할 지 갱신할 지 결정한다. 주키를 이용해 기존의 레코드를 찾은 경우에는 단순히 갱신한다. 주키를 이용해 레코드를 찾지 못한 경우에는 단순히 삽입한다. 만일 주키가 없는데 레코드가 있는 경우에는 삽입하여도 상관이 없으므로 삽입한다. 다음은 save메소드의 주요 분기점을 보여주고 있다.
         데이터베이스에서 레코드를 삭제하는 작업은 Model클래스의 delete메소드로 추상화했다. 하지만 내부에서 실제로 레코드를 삭제하는 메소드는 delete_objects이다.[8] delete_objects메소드는 지우려는 레코드를 참조하는 다른 테이블의 레코드까지 함께 삭제하거나, 외래키를 NULL값으로 설정한다. 예를 들어 다음은 Risk테이블에서 한 레코드를 삭제하는 경우 이를 참조하는 Consequence, Control 테이블의 레코드까지 함께 삭제하는지를 묻는 사용자 화면이다.
  • 객체지향용어한글화토론 . . . . 4 matches
          * 비슷한 부류의 책들이 반복적으로 그런 어휘 설명을 함으로서 페이지를 낭비하는것 보다는 어휘를 우리말로 대체시켜서 좀더 직관적으로 알아보게 만드는게 좋지 않을까??
          * 외국인이 느끼는 그 느낌을 최대한 살릴수 있는, 그 숨은 뜻을 최대한 내포하는 우리말로 바꾼다면 좀더 이해가 쉽지 않을까??
          * 게다가 점임가경으로 그렇게 발음 그대로 옮겨ㅤ많은 용어들이 책마다 다르게 쓰여져 있다는 것이었다. 특히 발행년도가 몇해씩 차이가 나는 책들은 그게 유난히도 심해서 도저히 같은 용어라고 보기 힘든 경우도 참 많았다. 그래도 요즘은 국내의 개발자 커뮤니티들이 많이 활성화되어서 사람들의 암묵적인 합의가 있어서 그런지 어느정도 통일이 되긴 했다.
          * [원서를봐야하는이유]. 우리나라 책을 보지 말아야 하는 이유를 상당부분 보완해 주지 않을까??
  • 경시대회준비반/BigInteger . . . . 4 matches
         C++ 용 BigInteger 클래스로 거의 모든 연산을 지원한다. UVA 사이트의 구식(?) 컴파일러에도 문제없이 통과할 뿐 아니라, 성능또한 훌륭하다. 고정도 정수 연산을 하는 문제의 경우, 고정도 연산을 하는 라이브러리를 본인이 직접 짜거나, 이 클래스를 이용하면 된다. 몇 일동안 삽질한 결과 후자가 낫다는 판단이 선다. 되게 잘 짜여진 코드다. 시간 내서 분석해봐야 겠다.
          enum BigMathERROR { BigMathMEM = 1 , BigMathOVERFLOW , BigMathUNDERFLOW, BigMathINVALIDINTEGER, BigMathDIVIDEBYZERO,BigMathDomain};
          const char *BigIntErrDes[] = { "Allocation Failed", "Overflow","Underflow", "Invalid Integer", "Divide by Zero" ,"Domain Error"};
          void Dump(const char *,enum BigMathERROR);
          string& DumpString (char const*,enum BigMathERROR);
          throw logic_error (DumpString ("DivideAndRemainder (BigInteger/BigInteger)",BigMathDIVIDEBYZERO));
          throw logic_error ( DumpString ("DivideAndRemainder (BigInteger/DATATYPE)",BigMathDIVIDEBYZERO) );
         void Dump(char const* s,enum BigMathERROR e)
          cerr << "Error Code: " << e << endl;
         string& DumpString (char const* s,enum BigMathERROR e)
          ostr << "Error Code: " << e << endl;
          throw domain_error ( DumpString ("Square Root",BigMathDomain) );
  • 골콘다 . . . . 4 matches
          * 역사가 반복되는 이유? 어떤 책에서 인용하던 구절. '낡은것은 멸하여 가는데 새것이 오지 않을때 위기가 닥쳐온다.' 멸해야 할 것이 알아서 멸하지 않을때.
          * 나중에 힘이 생기면 '수구' 적이지 않을 자신이 있을까. 이미 자신의 이론이 고정화되어린 이상의 경우. --["1002"]
  • 그래픽스세미나/1주차 . . . . 4 matches
          1. 직선의 기울기값을 살펴본 후 -1 ~ 1 사이일 경우에는 X값을 1씩 증가시키며 Y값의 점을 찍고, 그 이상이나 이하일 경우에는 Y값을 1씩 증가시키며 X값의 점을 찍는다.
          * 반대일 경우도 마찬가지
          * Outcode가 0000 일 경우엔 Clipping 이 필요하다.
  • 데블스캠프2004/세미나주제 . . . . 4 matches
          - [STL]의 경우 사용법을 세미나하는것도 좋지만 GenericProgramming 의 개념과 왜 그러한 패러다임이 나왔는지, 그 배경에 대한 설명도 있으면 좋을 것 같습니다 - [임인택]
          - 그 정도 주제까지 간다면, ProgrammingLanguage 관련 전체를 다루는 수업의 연장선에 놓는게 좋지 않을까요? --NeoCoin
          * 시험은 수요일날 완료. RevolutionOS는 '예' 로 든것이고. 실제로 04중에는 알 사람도 얼마 없지 않을까 해서. 적당히 컴퓨터쪽 역사의 과거와 미래에의 모습에 대해 보여줄만한 영화, 그리고 재미있는 녀석이면 환영. --[1002]
          - 영웅은 스스로 만들어지는것이 아니라 시대가 만드는것입니다. 시대의 요구가 있다면야 누군가는 반드시 나타나지 않을까요? -- 장창재
  • 데블스캠프2005/주제 . . . . 4 matches
         새내기 발표, 혼자하는것도 좋겠지만 발표자 한사람에게만 도움이 되지 않을까요. 제가 이 의견을 낸것도 '''함께'''해보는 과정에서 무언가를 얻어갔으면 하는 취지에서였는데 말이죠. 조현태군. 주위에 친구들 꼬셔보세요..^^; - 임인택
         프로그래밍을 경험한 기간에는 차이가 있겠지만 오히려 이 점이 이 토의를 더 영양가 있게 만들수 있다고 생각합니다. 신입생이 대학에 입학해서 처음으로 프로그래밍을 접했다고 했을 때, 대부분이 프로그래밍을 공부한 방법은 수업시간에 특정 언어에 대해 수업을 들은 것이 대부분이고 코딩경험도 수업시간에 내준 레포트를 작성하는 것이 전부일 것입니다. (물론 개인적으로 열심히 한 사람들도 있겠지요) 재학생의 경우에는 자신이 그동안 어떠한 방법으로 공부를 했으며, 어떻게 했으면 더 좋았겠다. 라는 생각을 분명히 갖고 있을 것입니다.
         이러한 상황에서 이러한 토의는 아주 의미가 깊을 것 같습니다. 최소한, 재학생의 경우에는 신입생들을 통해서 자신을 돌아볼 수 있는 계기가 될 수 있고, 신입생의 경우에는 공부를 하는데 있어서 기존 재학생들이 선행한 방법을 택하거나 아니면, 새로운 공부 모델을 창조하는데 도음이 될 것 같네요. 물론 여기저기서 좋은 컬럼이나 고전을 접할수도 있겠지만 같이 공부를 하는 학생들간의 토의는 이에 못지않은 효과를 얻을 수 있으리라 확신합니다. 만약 이러한 시간을 정말 갖게 된다면 저에게도 큰 도움이 될것은 자명한 일이구요. - 임인택
  • 데블스캠프2010/첫째날/후기 . . . . 4 matches
          * 선배님의 말씀을 들어보면 아무래도 우리나라의 게임 관리자는 상당히 특이한 위치를 점하고 있지 않은가 싶다. 인터넷에서도 우리나라 IT에 대한 우스갯소리도 자주 들릴 정도니까. 그런만큼 그 자리에 있는 사람만이 말할 수 있는 것이 있지 않을까 싶다. 특히나 표절과 관련된 주제는 민감한 만큼 이런 자리가 아니면 이야기를 들을 수 없지 않았을까 싶은 꽤나 생각해 볼 만한 주제였다. 아쉬운 점은 플래쉬와 SNG 이야기가 나오길래 스마트폰과 애플 이야기도 들을 수 있지 않을까 했는데 그 부분에 대한 언급은 없으셨다는 점이었다. 그래도 이런 자리에서만 들을 수 있는 가치있는 이야기였다고 생각한다. - [서민관]
          * 러플을 처음 접해보았는데 흠 역시 일반적인 프로그래밍 언어와는 달랐습니다. 그리고 작년에 했던 NXT가 생각나더군요. 교육용 언어에 대해 별 생각이 없었는데 오늘 해보고 나니 새로운걸 배워본다는 취지로는 좋았습니다. 언어 자체의 문법도 간단할뿐더러, 결과를 바로바로 확인해볼 수 있더라구요. 한가지 아쉬운 점이 있었다면 러플을 해본적도 없는 제가 도우미로 나섰던 점... ㅋㅋㅋㅋ 그래서 파이썬과 러플이 무슨 관계인지 확인을 못해봤습니다. 궁금했었는데... ㅋㅋㅋ - [박성현]
  • 데블스캠프2012/둘째날/후기 . . . . 4 matches
          * [권순의] - XBox용으로 게임을 위해 만들어진 키넥트를 가지고 플레이 한 번 해 보고 싶긴 했는데, 음.. 듣다 보니 역시 게임은 패드로 해야 제 맛.... ㅋㅋ 여하튼 작년에 이걸로 6피에서 고생하는 모습을 봐서인지 꿈과 희망은 꿈과 희망으로 남아야 한다는 말이 이해가 되긴 하더라고요. ㅎㅎㅎ 뭐 어찌되었든 간에 잘 만들고 키넥트의 기능도 보다 향상되고 하면 뭔가 더 재미난 것을 많이 만들 수 있지 않을까 싶습니다. 유투브에는 많은 사람들이 만들어 놓은 게 있긴 하겠지만 서도.... 이걸로 소닉은 어떻게 할 수 있을까... 내가 직접 뛰어야 하나 -ㅅ-;;
          * [안혁준] - 키넥트를 말로만 들었지 실제 어떤식으로 동작되는지를 몰랐는데 오늘에서야 알게 되네요. 다만 키넥트의 인식이 그다지 좋지 못하다는점(관절이 20개만 잡힌다는게..) API쪽도 MS인 만큼 비공개가 많다는 점도 알게되었고요. 마이크 위치 인식같은 경우에는 음향 반사 때문에 인식이 좋지 않을수도 있다는 생각이 들었습니다. 사실 이정도 물건이면 여러가지 활용방안이 있을수 있는데 그게 어디까지 가능한가를 알게 되어서 좋은 시간이었습니다.
          * [안혁준] - case문의 페이크에 완전 황당했습니다. 어셈을 알고있는데도 심지어 어떤 어셈 구문으로 컴파일 되는가를 알고 있으면서도 놀랬습니다. 유지보수 = 가독성 이란걸 확인 할수 있었던 시간이었고 무엇보다 유쾌한 시간이었습니다.
  • 말없이고치기 . . . . 4 matches
         [위키위키]에선 누군가가 별 말을 남기지 않고 뭔가를 수정하거나 삭제를 한 경우를 볼 수 있다. 이런 경우 그 사람이 경솔하다고 생각할 수도 있겠지만, 오히려 의도적인 경우가 있다.
         이 방법은 특히 WikiMaster들이 많이 행한다. OriginalWiki의 WardCunningham 경우는 "이건 이래야 한다"는 식의 말을 특정인에게 직접 하는 일은 별로 없고, 대신 그 규칙을 어긴 글이 있을 때마다 일일이 찾아가서 단순히 그 오류만 고쳐준다 -- 말하지 않고 스스로 행함으로써 "보여주는 것"이다(NoSmok:LeadershipByShowing). 그러면 당사자는 이를 알아채지 못하고 처음 몇 번은 계속 실수를 할 수 있지만 어느 순간에 스스로 깨닫고 학습( NoSmok:동의에의한교육 )하게 된다.
  • 문자반대출력/허아영 . . . . 4 matches
          비베에서는 한글이나 일본어처럼 2바이트를 사용하는 글자의 경우 알아서-_- 판단하고 한 글자 단위로 읽는 함수가 있긴 한데 씨에서는 알파벳과 같은 1바이트 문자인지 아니면 2바이트 문자인지를 어떻게 구분해야 할까요? -태훈 [zyint]
          MSB는 비트로 표현된 값에서 가장 중요한 요인이 되는 값을 말합니다. 가령 10001000 이라는 값이 있을때 가장 왼쪽에 있는 1이 MSB입니다. 마찬가지로 가장 왼쪽에 있는 0을 LSB (Least Significant Bit)라고 합니다. 지금 설명드린 내용은 BigEndian Machine 의 경우, 즉, 비트를 왼쪽에서 오른쪽으로 읽는 아키텍처에서의 MSB, LSB를 설명드린 것이고, LittleEndian (비트를 오른쪽에서 왼쪽으로 읽는) 아키텍처에서는 LSB와 MSB가 바뀌어야겠죠. 현대의 거의 모든 아키텍처에서 영문은 ascii 코드로 표현합니다. ascii코드의 값은 0~127인데 이를 8비트 2의 보수를 사용해서 표현하면 MSB가 모두 0 이 됩니다. 이 경우에는 해당 문자가 1바이트의 문자란 것을 뜻하고, MSB가 1인 경우에는 뒤에 부가적인 정보가 더 온다 (죽, 이 문자는 2바이트 문자이다)라는 것을 말합니다.
  • 비행기게임 . . . . 4 matches
          게임 그래픽 부분이 만만치 않긴 하지.. 흐흐. 스프라이트 그리는 사람이 고충이 생각보다 많음. 안티 엘리어싱 부분의 경우 투명색이 제대로 처리가 되지 않기 때문에 도트노가다를 해주어야 하거든. 나의 경우 포토샵으로 일단 트루컬러로 그린뒤 그것을 256 indexed color 로 바꾸고 투명색 하나 넣어서 도트노가다 해주는 식이거나, 또는 아에 3D 툴로 그리던지. (3D 툴로 모델링하고 렌더링시에 웬만한 툴들은 alpha channel 을 따로 저장하거든. 그래서 3D 툴로 만든건 안티 엘리어싱 문제를 그리 의식하지 않음.) 또는 아에 엔진 자체가 3D이고 스프라이트들이 3D 이던지지만 이건 논의 대상 밖이겠군; 해성이의 경우는 원래 도트 노가다에 일가견이 있기에 뭐 전부 그려주긴 했고;
          암튼. 초반의 열정이 후반의 끈기로 이어지려면, 해당 일에 대한 좋은 방법들을 중간에 계속 궁리하고, 적용해봐야겠지. 개인적인 조언이라면, 초반에 너무 그래픽 등에 많이 신경쓰지 않는것이 낫다고 생각함. 일단은 전반적인 틀과 게임 엔진을 만든다는 기분으로 하고, 그 엔진이 자신이 원하는 아이디어를 수용할 수 있는가에 더 촛점을 맞추는게 낫지 않을까 함. 단, 생각은 전반적인 부분을 보되, 구현을 쉽게 하기 위해서는 구체적 예제 데이터를 가지고 작업하는것이 효율적이겠지. 그리고 그 예제 데이터를 기반으로 일종의 SpikeSolution식으로 구현을 한뒤, 그 구현된 프로그램을 보고 다시 코드를 작성하던지 또는 ["Refactoring"] 해서 일반화시키던지.(새로 짜도 얼마 시간 안걸림. 예상컨대, 아마 중반에 소스 한번 뒤집어주고 싶은 욕구가 날껄? 흐흐) --["1002"]
  • 새싹교실/2011/Pixar/3월 . . . . 4 matches
          * 그런데 위 코드는 3+4의 값이 뭔지 확인해보기 위해 너무 복잡한 일들을 해요. 3+4가 7인 것을 왜 굳이 출력해야하죠?
          * 이렇게 하면 컴퓨터에게 ''3+4는 8이라고!!!'' 주장하는 것과 같습니다. 만약 누가 갑자기 저런 말을 한다면 아주 어처구니가 없겠죠? 컴퓨터도 저런 주장은 어이없게 생각하기때문에 말도 안 되는 주장을 할 경우 에러를 발생시킵니다.
          * 세번째 c프로그래밍수업 새싹교실을 했습니다. 연산자에 대해서 배웠습니다. 연산자는 사칙연산이랑 나머지를 구하는거등이 있었고, assert를 이용해서 확인해보면서 & 나 | 등 배우고 printf에 대해서도 배웠어요 내일은 수업이 없다고 하니 오늘 한것을 복습을 열심히 하겠습니다~! 점점 잘할수 있을거같다는 마음이 드네요 . -이승열-
  • 새싹교실/2011/앞반뒷반그리고App반 . . . . 4 matches
          * 그거쓰면 중간에 그 값이 거짓일경우 프로그램 따운 시켜버리는거임. 오류검사할때 쓴다고 봐야하려나..?- [김태진]
          에서 assert안이 참일 경우 그냥 지나가버리지만(프로그램이 종료하지만) 그렇지 않을경우
  • 새싹교실/2012/AClass/5회차 . . . . 4 matches
         3.문자열이 대칭인경우 Palindrome, 아닌경우 Not Palindrome을 출력하는 프로그램을 작성해봅시다.
         3.문자열이 대칭인경우 Palindrome, 아닌경우 Not Palindrome을 출력하는 프로그램을 작성해봅시다.
  • 서버재조립토론 . . . . 4 matches
         네 충분히 그렇게 생각 하실수 있다고 생각합니다. 현재로서 서버가 하는일이 웹서버및 소스 Repository 로서의 역할이니깐요. 그리고 마지막에 프로젝트 때문에 필요할 경우에 나 새로 맞출 필요가 있다고 하신 말씀도 동감합니다. 현재 한 3주 동안 제로페이지 서버가 제대로 작동하지 않았습니다. 제로페이지 서버를 아주 자주 이용하는 입장에서는 많이 제로페이지 서버에 들어가니깐 서버가 죽어 있어서 여러가지로 불편했고, 현재 제로페이지 서버와 연계해서 돌아가는 위키 포탈을 운영 및 관리하는 입장에서는 치명적이었습니다. 제로페이지 회원들이야 안면이 있으니깐 이해해 주겠거나 좀 불편하고 말겠지 하고 생각하실수도 있지만, 위키 포탈 서비스가 우리 학회에서 제공을 해주는 서비스지만 외부에서 이용하는 사용자도 꽤 있었는데 왠만한 사용자들은 다 빠져 나간듯 하네요.. 그래서 지금은 급한게 다른 서버에서의 DB 지연을 기다리는 시간을 원래 1분에서 3초로 줄여서 그나마 임시 방편으로 수습을 했습니다. 또 프로젝트 진행을 하는데에도 제로페이지 서버가 자주 죽어서 진행을 제대로 할 수가 없었습니다.
          제로페이지 서버가 현재 분명 문제가 있고, 이것을 해결해야 한다는데에는(즉 좀 가끔가다가 죽으면 뭐 어때 하는 분은 없을거라고 생각합니다.) 모두 동감 하실거라고 생각합니다. 현재 제로페이지 서버가 아주 자주 죽는 문제가 제로페이지 서버의 하드웨어 적인 문제인가, 소프트웨어 적인 문제인가, 인프라적인 문제인가 이 3가지중 하나라고 생각합니다. 인프라적인 문제는 다른 학회나, 동문서버도 안 죽고 하니깐 제외 하겠습니다. 그러면 하드웨어 아니면 소프트웨어 적인 문제인데. 솔직히 저는 리눅스가 오래 사용해서 자주 뻗는다는 것은 좀 이해가 가지 않습니다. 리눅스를 서버로 우리보다 훨씬 오래 사용하는 곳도 부지 기수일텐데 그런곳들이 모두 이런 문제를 겪고 있을까요.. 그렇다고 지금까지 관리가 안되서 그런것도 아니라고 생각합니다. 상민형, 석천이형, 영창이 모두 제가 생각하기에는 그 누구보다도 서버 관리를 잘 했다고 생각합니다. 물론 테스트를 해봐야 알 문제입니다. 오늘 회장님이 테스트 해본다고 했는데 가끔씩 서버가 죽는 문제를 어떻게 테스트를 해야할지 전 감이 안 오네요. 한 일주일정도 제로페이지 서버를 죽이고 다른것(다른 하드에) 웹서버를 깔아서 아주 아주 수시로(몇분 단위로) 그 웹서버로 들어와서 죽었는지 확인을 해야 하는데(물론 테스트는 테스트를 진행하는 한두사람만 하겠죠. 현재의 제로페이지 위키만 해도 하루 방문자가 1000이 넘는것에 비해서...)그게 참 어려운 문제라고 생각합니다. 또 한 일주일동안 서버를 죽이는것도 현재 위키위주로 돌아가는 제로페이지에도 치명적이구요. 이렇게 테스트를 해서 만약 하드웨어 적인 것이 문제라면 또 다시 서버를 업그레이드 한다음에 다시 서버를 설치하는 작업을 해야겠죠.
          즉 제가 서버업그레이드를 제안하는것은 하드웨어적인 문제나 소프트웨어적인 문제를 동시에 해결하고자 제안한 것입니다. 위와 같은 테스트를 할경우 그에 따른 희생및 서버 관리자의 불필요한 수고가 필요합니다. 그리고 학회 운영 및 프로젝트에서도 많은 희생이 따름니다. 그리고 위와 같은 테스트도 확실한 방법은 아니구요, 여전히 불확실성을 내포한 방법입니다.
          저는 업그레이드가 필요하다고 생각합니다. 서버의 핵심은 안정성인데, 지금의 서버는 안타깝게도 그 역활을 제대로 수행해주지 못하고 있기때문입니다. 서버 업그레이드 시도를 하게되면, 이전의 컴퓨터에 문제가 없다고 판단될 경우 새서버의 보조 역활과 리눅스 테스트용 서버로 사용해도 큰 문제가 없다고 생각합니다.^^ 속도 측면에서는 현재의 서버도 전혀 문제가 없지만, 안정성이 낮은점은 이용자의 입장에서 불편하다고 느낄 수 밖에 없기 때문입니다.(실제로 많이 불편했답니다.ㅠ.ㅜ 꼭 필요할때만 죽어있어요..) - [조현태]
  • 수학의정석/집합의연산/조현태 . . . . 4 matches
          알고리즘은 1과 0으로 수를 저장, 한칸씩 옮겨가면서 모든 경우의 수를 찾는 것이다.
          또한 예를 들어 7개일 경우는 1개일때, 2개일때, ... 7개일때 이런식으로 나누어서 연산을 한다.
          이렇게 세팅후 1인 경우에 출력한다. 한차례연산후
          이런식으로 연산을 하여 모든 경우의 수를 찾아낸다.^^
  • 위시리스트 . . . . 4 matches
          * 신청한 물품은 운영진의 판단 또는 예산, 상황에 따라서 일부 승인되지 않을 수 있습니다.
          * 여러 개가 필요한 경우 갯수도 기재
          * 책의 경우에는 ISBN도 기재
          * 서적같은 경우는 회원 개개인의 관심분야에 따라 수요가 달라질 수 있으니 서적을 신청할 때 해당 서적의 수요 조사를 하고 수요가 높은 순서대로 신청하는 것도 좋을 것 같습니다 - [장혁재]
  • 위시리스트/구상 . . . . 4 matches
          * 신청한 물품에 대해서 회장 및 운영진이 필요하다고 판단한 경우에 한해서 지원.
          * 여기에 작성하지 않은 항목에 대해서는 지원하지 않을 수도 있음.
          * 가격 제한? 원칙적으로 (재정 범위 내에서) 가격 제한은 없습니다. 하지만, 가격 대비 필요성이 있다고 판단되지 않는 경우에는 거절될 수 있습니다.
          * 지원의 우선 순위? 용도와 필요성으로 판단하여, 우선적으로 필요하다고 생각되는 것에 상대적으로 높은 순위를 부여합니다. 따라서 필요성을 명확하게 작성하지 않은 경우, 우선순위가 낮아질 수 있습니다. - [김민재]
  • 이성의기능 . . . . 4 matches
          * 여기서 인상적인 부분의 내용은 이거다. 이성의 기능은 자신의 환경을 바꾸어가는 기능이라는 말이 너무 큰 깨닳음을 주었다. 주변을 보면 사람만큼 이렇게 환경을 바꾸는 생명체는 없다. 사람은 정말 엄청나게 환경을 바꿨다. 물론 사람들중에서 어려운 환경이 주어지면(일종의 도전) 수동적으로 그 환경에 순응하거나 멸종하는 경우도 있다. 이러한 경우에는 아무런 발전도 기대하기 어렵다. 반면 그 어려운 도전에 맞받아서 환경을 인간에게 유리하게 변형하여 큰 진보를 이루는 경우도 있다. 환경이라는 것이 얼마나 강력하게 인간에게 영향을 끼치는지는 우리 주변에서 여러 사례를 보면 쉽게 알 수 있다. 특히 인간이 만드는 문화, 조직, 인간관계 등등의 환경은 그 영향이 개인에게 끼치는 정도가 엄청나다. 이러한 환경의 영향에서 독립적이기는 상당히 힘들고, 게다가 그 환경을 바꾸는 것은 더더욱 힘들다. 하지만 인간은 이성을 가지고 있기에 자신의 환경을 계속 바꾸어 나가면서 발전할 것이다. 다만 환경이 바뀌기 힘든만큼 그 근저에 깔려 있는 기본적 패러다임이 바뀔때에는 시간이 좀 걸릴것이다.
          이 두개의 기로에서 후자의 경우, 그 종은 낡아빠졌지만 아직 지배적인 방법의 범위르 벗어나 잡다한 경험의 혼돈속에 감추어져 갓 태어나기 시작하는 방법론의 하나를 포착한다. 그 선택이 재수좋게 맞아떨어지면, 진화는 상향의 코스를 취하기 시작한다. 재수없게 안 맞아떨어지면, 시간의 망각이 사라진 종의 흔적위로 면사포를 드리운다.
  • 이영호/잡다 . . . . 4 matches
         아무것도 없는 가상적인 우주공간에(물론 여기서 초끈 이론등을 배제한다. 입자 체계는 플랑크 상수와 같은 극 미시적 세계가 아닌 원자 크기의 차원에서 이해한다.) 원자 하나가 생겼다. 이 원자는 우주 공간에 가만히 있을것이다.(상대적인 기준이 없으니) 하지만 이 원자를 중심으로 양쪽 1km 에 원자가 하나씩 생겼다. 즉, 원자는 일렬로 3개다. 이럴 경우 원래 있던 가운데 원자를 중심으로 두 원자가 끌려올것이다. 물론 무게 중심인 원래 원자는 가만히 있겠다. 하지만 맨 오른쪽 원자 하나가 사라졌다고 하자. 물론 그냥 사라진 것이 아니다. 질량이 에너지로 바뀌며 사라졌다.
         이럴경우 이 세 원자의 관계는 어떻게 되겠는가? 열에너지도 중력으로 존재할까?
         Q=cmt 로 열량을 재고 E=mc^2로 질량을 측정한다. 그리고 이 값이 주입한 열에너지와 질량의 값이 똑같은지 확인을한다.
         아무리 그렇다 하더라고 자체적으로는 기본적인 고스톱, 바둑, 테트리스와 같은 50개정도의 게임을 갖추어야겠죠. 아니면 경쟁이 되지 않을 겁니다. 그런 기본적인 게임을 만드는데 걸리는 시간이라... 개발자 5명(서버 개발자, 클라이언트 개발자) 정도, 디자이너 2명, PM, 게임 시나리오 및 기획자, 음향효과 담당자 등등으로 최소 1년 이상입니다. 1달만에 만든 게임을 누가 하려고 할까요? 1년 정도 수입 없이 10명을 먹여살릴 능력 안되면 포기하라고 하십시오. 박성규
  • 이학 . . . . 4 matches
         학생과의 관계에서 자주 경험하는 일인데, 일본 학생은 'why' 라든가 'how'라고 질문하는 경우가 매우 많다. 말할것도 없이 'why'라는 것은 '왜'라는 것인데, 이것은 '진리(眞理)'를 물어 보고 있는 것이다. 이에 반해 미국 학생은 'what'이라는 형태의 질문을 많이 한다. "그것은 도대체 무엇이냐?" 라는 식으로 물어본다. 이것은 '사실(事實)'을 묻는 것이다.
         요컨대 일본 학생은 사실의 배후에 있는 진리를 구하고 있다고 해석할 수 있다. 'why' 라고 묻는 것이 사실만으로 만족할 수 없기 때문이라면 나름대로 훌륭한 질문이 될 수 있다. 그러나 경우에 따라서는 정보(情報)를 진리로 착각할 때도 있고, 사실을 모르면서 진리라는 말을 혼동하여 자기 만족에 빠지는 경우도 있을 수 있다.
         단. 목적과 방향성없는 질문. 그리고 [http://kldp.org/KoreanDoc/html/Beginner_QA-KLDP/ 잘만들어진 메뉴얼을 읽지 않은 상태에서의 질문] 은 조금 생각해봐야 하지 않을까요. 이미 좋은 문서가 있는 가운데에서 선배들이 할 일은 '고기낚는 법' 을 가르쳐주는 것일지도.
  • 일정잡기 . . . . 4 matches
          * 예를들어 3학년 동기엠티를 추진하는 K군이 있다고 하자. K군은 5월 중에 MT를 가고싶어한다. K군은 일정을 잘 잡는데 필요한 요소를 고려해서 1달 전에 MT를 갈 계획을 세우기 시작한다. 이 때 1달전이라는데서 얻을 수 있는 이점은 1번과 2번이다. 1번의 경우, MT참가 인원에 영향을 미치는 요소들을 미리 파악할 수 있게 된다는 장점이 생기게 되는데, 예를들어 농활(5/3~5/6) 해오름제(5/16) 축제(5/22~5/24)와 같이 일정을 잡는 사람이 바꿀 수 없는 요소를 미리 파악해 이를 피하도록 유도할 수 있다. 2번의 경우, MT참가자들의 일정을 1달전에 고정시킴으로 인해서 자신의 다른 일정들을 다른 날짜로 보내도록 만들고, 해당 날짜에 MT가 있음을 주지시켜 이 날 다른 집단이 일정을 잡는 것을 피하도록 할 수 있었다.
          * 역시 가장 좋은 방법은 위에서 말한대로 일정을 미리 잡는 것인데, 이외에 3번이 필요한 경우도 발생한다. 예를들어 3학년의 특정 한 과목을 재시험쳐야하는 상황이 왔는데, 일정이 있는 당일 오후 6시에 시험을 칠 뻔 하였으나 강의실 사정 등으로 수업시간에 치게되는 운에 의해서 일정에 영향을 받지 않는다던가 말이다.
          * 반면에 1,2,3번이 모두 결여된 경우도 있는데, C집단의 회장 L군은 2012년 C집단의 정모가 매번 다른 일정과 겹치게되는 불운을 맞이하게된다. 정보 수집을 하지 못해 학교 행사와 일정이 겹쳤음은 물론이고, 그 때문에 직전에 날짜를 바꿈으로 인해서 다른 사람들의 다른 일정과 모조리 겹쳐지게 되기도 한다. 게다가 운도 없어 그 날짜에 자신이 참석하지 못하는 불운을 맞이하였고, 일정 파토라는 최악의 사태를 낳기도 했다.
  • 정규표현식/스터디/반복찾기 . . . . 4 matches
         물음표(?)는 제한된 범위만큼 일치시키고(없거나 하나만 있는 경우 일치한다), 구간을 쓰면 정확히 지정한 만큼 일치하거나 지정한 범위 안에서만 검색을 수행한다.
          이경우 검색되는 범위는 <B> AK</B>, <B>HI</B>, <B> AK</B> and <B>HI</B> 세개가 일치되고 이것은 과하게 일치했다고 할수 있을것이다. 그럼 이렇게 중복되는것을 어떻게 방지할수 있을까? 위에서 말한 물음표(?)를 쓰면된다.
         || * || 없거나 하나 이상 있는경우 일치 ||
         || ? || 없거나 하나인 경우 일치(붙여서 쓴다) ||
  • 정모/2003.3.5 . . . . 4 matches
         어느분께서 이 기록을 담당하셨는지는 모르겠지만, 요약에서 이모티콘 같은 감정 표현의 글자를 쓰지 말아주세요. 모두가 동일한 감정을 느꼈는지 안느꼈는지 확인하지 않은 이상 말이지요. --NeoCoin
          * 작년보다 많은 신입생 대상 세미나와 학회 소개가 있을 예정입니다. 그것을 열면서 계속 제로페이지 홍보도 역시 같이 할꺼구요 그 때마다 준회원 이야기 등을 할것입니다. 이렇게 되면 아마도 일정 기간 모집은 필요치 않을것으로 생각됩니다. --상욱(["whiteblue"])
          * 여러 선배님들과 이야기를 해 봤는데요 페이지 디자인을 싹 바꾸어보려고 합니다. 페이지 디자인이 좀 안좋다라는(-_-; ) 의견이 많았기 때문에 해 보기로 했습니다. 게시판을 새로 만든다 등 이런 것들은 차근차근 하기로 했구요 일단은 한번 다 바꾸어보는데 의미를 두기로 했습니다. 이무리 학습을 목표로 한 페이지라도 디자인이 깔끔하고 좋으면 훨씬 좋지 않을까요? -- 상욱(["whiteblue"])
          * 서버가 너무 많이 죽는거에 대해 대책을 세워야 할 것 같습니다. 신입생들 들어오는데 계속 그러면 곤란하지 않을까요??^^; -- 상욱(["whiteblue"])
  • 정모/2004.11.16 . . . . 4 matches
          * 듣는 사람도 책을 읽은 사람의 압축된 내용을 들으면서 책의 내용을 짧은 시간에 흡수 할수 있지 않을까요??
          발표자는 발표 주제에대한 제목정도를 미리 공지한다.: 자신이 관심이 있는 주제에 대해서 발표를 한다면 평소에 오지 않았던 회원들에게도 오고자하는 동기부여가 되지는 않을까요??
          발표형식은 자유롭다. : 실험 적인 프리젠테이션을 구성할 수 있지는 않을까요?? 발표에는 꼭 프로젝터가 필요한건 아니니까.
          - 준비를 못하는 경우 문제발생
  • 정모/2007.4.3 . . . . 4 matches
         로 프로젝트 참여가 가능해 지지 않을까요?
          - zeropage선배님들과 얼굴 정도는 알아야 하지 않을까? => 어차피 열정이 없는 사
         람은 나중가면 나오지 않을 것이므로 궂이 얼굴을 알 필요가 없지 않을까??
  • 정모/2012.3.12 . . . . 4 matches
          * 홍보가 아니라 교수님께서 견적을 보고 가셨으니까 4월 중에는 동아리 방이 만들어지지 않을까 하는 얘기였던 걸로 기억해요. - [서민관]
          * 전시회 홍보, 동아리 방 설명에 이어서 OMS가 상당히 인상 깊었던 정모였습니다. 제목만 보고도 그 주제를 고르신 이유를 바로 알았습니다. 전체적으로 Type, Type Safety, Java Generics에 대해서 상당히 깊이 다루지 않았나 싶네요. 사실 제네릭스 모양이 C++의 템플릿과 비슷하게 생겨서 같은 것이라고 생각하고 있었는데 이건 확실히 '만들어진 이유가 다르다'고 할 만 하군요. 그리고 마지막에 이야기했던 Type Erasure는 제네릭스를 구현할 때 JVM 레벨에서 구현하지 않고 컴파일러 부분에서 처리를 하도록 했기 때문에 타입이 지워지는 거라는 얘기를 들었는데 맞는지 모르겠군요. 이거 때문에 제네릭스 마음에 안 들어하는 사람들도 있는 모양이던데. 중간에 이 부분에 대한 개선이 이루어지고 있다는 말씀을 잠깐 하셨는데 컴파일 이후에도 타입 정보가 사라지지 않도록 스펙을 수정하고 있는 건가요? 좀 궁금하군요. 여담이지만 이번에 꽤 인상깊게 들었던 부분은 예상외로 Data Type에 대한 부분이었습니다. 이걸 제가 1학년 여름방학 때 C++ 스터디를 한다고 수경 선배한테 들은 기억이 지금도 나는데, 그 때는 Type이 가능한 연산을 정의한다는 말이 무슨 뜻인지 이해를 못 했었죠 -_-;;; 이 부분은 아마 새내기들을 대상으로 새싹을 할 때 말해줘야 할 필요가 있지 않을까 싶습니다. 아마 당장은 이해하지 못 하겠지만. 후후 - [서민관]
          * Type safety를 설명하기 위해 Data type 이야기에서 시작했습니다. Data type에 대한 나름의 정의는 멘토링을 통해 듣고 새싹에서 알차게 우려먹은 내용이었어요. 아마 많은 새싹 교실 선생님들께서 첫 주에 변수와 자료형에 대해 수업을 진행하지 않을까 생각하는데 여러분도 알차게 써먹으시길ㅋㅋㅋ
          * 메일이라... 지혜 선배 같은 경우는 그런 쪽 메일을 좀 자주 받으시는 것 같으니까 그런 것도 괜찮은 방법이겠군요. 근데 많아지면 스팸메일처럼 될 것 같은 게 좀 무섭지만 ;; - [서민관]
  • 정모/2012.4.9 . . . . 4 matches
          * 복구보다 다른 위키를 우선 만들어보고 이전하는 게 낫지 않을까.
          * 이번 학기 전에는 위키를 옮기는 게 낫지 않을까!!! 생각중이심.
          * 드디어 학회실 정리를 했습니다. ..뭐 완전히 된거도 아니고 아직 잡다한 물건도 없지만 그런거야 점점 채워나가고 정리해나가면 되지 않을까요. ㅎㅎㅎ 1월부터 계속 준비해오던 것 중 하나가 드디어 결실을 맺어 다행이에요. 이제 수요일까지 써야하는 Friendship 지원서만 써내면 제 공약(?)중 하나인 ZP학회실 확보 + ZP부자페이지 만들기 를 실천하게 되는군요.!! ㅋㅋ - [김태진]
          * 새싹이 늦게 끝나는 바람에 정모에도 약간 늦어서 OMS를 못 들었네요 ㅠㅠ 그래도 메인 이벤트인 생일축하에는 참석할 수 있어서 그나마 다행이었습니다. 그 외에 정모 자체는 전체적으로 간단간단한 느낌이었네요. 뭐, 사실 이게 다 학회실 정리 때문이었겠지만. 그래도 개인적으로는 학회실 정리하는 건 꽤 마음에 들었습니다. ZP 사람들끼리 모여서 북적거리는 느낌도 좋군요. 중간에 새싹이 있어서 빠지긴 했지만 빠지기가 아쉬울 정도였습니다 ㅠㅠ 이런 기회가 두 번 있지도 않을텐데 말이죠. 그래도 아직 학회실이 다 정리된 것은 아니니 앞으로 손을 볼 일이 더 있으면 같이 정리를 해 보고 싶네요 - [서민관]
  • 정모/2013.9.11 . . . . 4 matches
          * 행사 참여비용이 인당 10만원이 넘는 경우, 그리고 단체 지원금액이 20만원이 넘는 경우, 회의를 통해서 지원 여부를 결정.
          * 몇 달 간격으로 경과 보고를 진행을 해보는 것은 좋지 않을까? - 정의정 학우
          * 오픈 캠프 형식으로 스터디 결과를 보고하는 방법은 좋지 않을까? - 안혁준 학우
  • 제로페이지회칙만들기 . . . . 4 matches
          * ["회원자격"] : 사전 연락 없거나(게시판 or 위키 공지), 현재 납득할 사정(학부생 아닌 경우,휴학)이 없이 2회 연속 정모에 불참시.본인 의사로 회원 자격을 상실한다.
          DeleteMe) 좋와해서 그렇기보다 다른 사람들의 일정에서 화요일이 빠질 확률이 많다고 생각해서 이지, 보통 월요일은 주의 시작이라 약속 잡는 경우가 많고, 수요일의 경우 주의 중간, 금요일이야 말할 것도 없고, 토,일을 뺀다면, 화, 목인데, 앞쪽이 좋은것 같아서, 그리고 과거에 다른 집부와 요일이 겹치는걸 많이 신경썼는데, 생각해보니 그럴 필요는 없다고 생각한다. --상민
         각 항목에 몇조 몇항을 두는 이유는 index가 용이하라고 있는것이겠지만, 이 상황에 경우는 그리 필요없을것이라 생각함.--석천
  • 지금그때2003/토론20030310 . . . . 4 matches
          * 학기 초 들떠있을때보단, 사람들이 어느정도 차분해지고, 자신의 미래를 관찰할 수 있을때 행사를 가지는 것이 좋지 않을까?
          * 오히려 그러한 때에 이러한 행사를 하면 그 의미와 효과가 크지 않을까?
          * 기타 - 금요일인 경우 학교선배가 아닌 다른모임사람들을 같이 참석시킬 수 있다. ex) RenaissanceClub
          ex) 토요일 : 학부생들 수업이 없어서 학교에 오지 않을 가능성 높으므로 참여도가 적다.
  • 지금그때2005/자료집 . . . . 4 matches
          * 개인 질문권(아이템) - 정말 질문하고 싶은 경우 개인당 1회로 질문할 수 있는 기회를 드립니다.
          * 질문 등록 - 메뉴판에 없는 질문이 하고 싶은 경우 포스트 잇에 적어주세요. 질문이 적힌 포스트 잇은 웨이터가 수거해 드립니다. 새로운 질문이 등록된 경우 주사위를 굴리기 전 웨이터가 모두에게 질문을 알려주고, 원하는 사람은 질문을 자기의 메뉴판에 추가하세요.
          * 입막음 - 한 질문에 대해 7분이 넘는 대답을 하는 경우 매니저에게 중지 당할 수 있습니다. 다음 질문을 위해 양해해 주세요.
  • 질문레스토랑 . . . . 4 matches
          * 정말 질문하고 싶은 경우 개인당 1회로 질문권 발동
          * 메뉴판에 없는 질문이 하고 싶은 경우 포스트 잇에 적음
          * 새로운 질문이 등록된 경우 주사위를 굴리기 전 웨이터가 모두에게 질문을 알려줌
          * 한 질문에 대해 7분이 넘는 대답을 하는 경우 매니저가 아이템으로 중지시킴
  • 창섭/삽질 . . . . 4 matches
          * 실수는 어이없게 생기는 경우가 허다하다. 황당하게 시간버리지 말자. =_=
          * 이제 절대로 하지 않을 것 같은 삽질, 내가 생각하게에 제일 어이없는 삽질 순위 3까지만 보관한다. 나머진 큐처럼 지우기.
          * 이상하게 함수가 작동을 안하거든 기본적으로 parameter 갯수와 reference 여부를 확인하자.
          * 특히 멀쩡하던거 고칠 때 확인 잘하자.
  • 채팅원리 . . . . 4 matches
         클라이언트쪽에는 4개의 Thread가 있다. JFrame을 사용한 클래스가 2개 있는데, 하나는 Login때 ID사용 허가를 확인한는 프레임이고, 다른 하나는 채팅의 기본 프레임이다. 4개의 Thread는 다음과 같다.
         Login : 현재 채팅에 사용중인 ID와 사용하고자 하는 ID를 비교하여, 채팅 참가 허가 유무를 확인한다.
         새 사용자가 접속을 시도하면 처음과 마찬가지로 사용자 ID 체크를 하게된다. ID 사용 확인을 한 후에 대기실에 접속을한다. 대기실에 접속하면, 기존에 대기실에 있던 사용자들의 사용자 ID를 보여주는 리스트에 새로 들어오는 사용자의 리스트가 추가되면서, 채팅화면에 새로운 사용자가 들어왔다는 메시지가 나오게 된다.
         채팅을 종료할 때는 채팅 윈도우의 종료 버튼을 누르면 윈도우 종료 이벤트가 발생한다. 클라이언트는 채팅 종료를 확인하는 옵션 패널을 보여준 후, 서버쪽에 채팅을 종료한다는 내용을 보낸다. 이때 보내는 내용은, 자신이 사용하고 있는 ID를 제거, 자신의 주소를 제거, 사용자 1명의 감소등이다.
  • 책거꾸로읽기 . . . . 4 matches
         [강희경]은 보통 책들이 서두에서는 흥미위주의 간단한 이야기를 다루다가 뒤로 갈수록 내용이 어려워지거나 뒷심부족으로 책을 다 읽지 못하는 경우가 많았다. 이 문제점을 해결하는 데 있어서 '''책거꾸로읽기'''가 큰 도움이 되줄 것이라 믿고 한번 시도 해본다.
         인도 최고 부자 '''위프로'''의 쁘렘지 회장은 하드웨어의 산업의 기반이 약한 게 '''인도의 한계가 아니냐'''라는 질문에 '''우리도 하드웽어를 한다. PC로 일어선 회사가 우리 아니냐? 위프로의 경우 인도 국내 시장 매출의 25퍼센트는 하드웨어서 나온다'''고 대답하였다.
         인도 교육부에 따르면, 2001년 기준으로 문맹률이 무려 35퍼센트에 이른다고 한다. 그러나 평균의 개념은 별 의미가 없다. 비록 평균적으로는 형편없어도 특출한 경우만을 골라내도 워낙 인구가 많기 때문에 그것만으로도 세계적인 경쟁력을 발휘하는 경우가 얼마든지 있는 나라가 바로 인도이기 때문이다.
  • 페이지이름 . . . . 4 matches
          * 영문 제목의 경우 모두 빈칸을 붙여서 사용한다. (제목으로 표시될때 자동으로 단어의 대문자 단위로 빈칸을 띄어주므로)
          * 한글 제목의 경우 붙여쓰기를 기본.
          추상적이라 생각되면 일종의 사랑방으로 이용하면 된다고 봅니다. 범용적인 만큼 스레드 성격의 글들을 더 잘 포용할 수 있지 않을까 생각합니다. 저는 '토론'(을 원한다면) 이나 '제안'(성격이라면) 임이 명시적으로 드러나는것이 좋지 않을까 생각한것 뿐, 특별한 다른 뜻은 없습니다. --["1002"]
  • 한자공/시즌1 . . . . 4 matches
          * global setting은 컴퓨터마다 적용되며 이름이 겹치면 commit이 안 되는 경우가 있으니 로그인 하고 설정을 먼저 바꾸자.
          * 이번 달 회식은 다음의 경우에 가도록 결정했습니다 :
          * 7명 이상 참가하는 경우
          * 단 코드를 안 짜오거나 과하게 짧게 짜는 경우에는 다음 스터디 때 5000원 어치의 과자를 사옵니다
  • 02_C++세미나 . . . . 3 matches
         그렇다면 대체 왜 이다지도 복잡한 포인터를 쓰는가? 내가 알기로는 포인터는 C 와 C++ 언어에서만 존재하는 기능이다. 동시에 사람들이 C 와 C++ 를 어려워하는 이유이기도 하다. 왜 사람들은 C 에만 있는 기능인 포인터를 어려워 하는가. 그건 포인터를 써야만 하는 어떤 '이유' 가 있는게 아닐까? 재미있게도, 사람들이 C 언어를 좋아하는 이유가 '포인터의 강력함' 때문인 경우가 많다.
         처음에 강조했듯이 포인터 역시 변수이기 때문이다. 그러한 경우에 대해서는 나중에 다시 알아보기로 하겠다.
         그리고 func에서는 a에 10을 대입했는데, 그러니까 10이 출력되야 하지 않을까?
  • 2006김창준선배창의세미나 . . . . 3 matches
          * 특정한 의식을 치루고 나면 알파파를 증진시키고, 창의력을 높일 수 있다. 예를 들어서 켄트백은 문제가 잘 해결되지 않을때 밖에 나가서 전기톱질을 한다고 한다. 이러한 운동을 통해서 아드레날린이 분비가 되고, 우뇌도 활용하면서 뭔가 생각의 전환을 가져 오는것 같다.
          * 사람마다 발생시키는 법이 다름. 자신에게 알파파를 발생 시키는 것이 무엇인지 알면 좋을듯.
          * 날때 부터 천재였다? - 물론 그런 경우도 있다. 하지만 경험과 노력으로 그만큼 도달한 사람도 있다. 아래 그래프는 미술가들의 각 나이별로 얼마큼의 값어치의 미술품을 만들었는지를 보여준다. 여기서 빨간석은 Conceptualist 이고 파란색은 Experientialist 이다. 즉 전자는 천재적인 사람들이고, 후자는 경험(노력)을 통해서 훌륭한 업적을 남기는 사람들이다. 즉 천재적인사람이나 범인이나 모두 가능성이 있다. 자신에게 맞는 가능성을 찾아 보자.
  • 2011국제퍼실리테이터연합컨퍼런스공유회 . . . . 3 matches
         사람들은 일정한 시간에 일정한 장소에서 홀로 일을 하는 것이 대부분이다. 그러나 때로는 여럿이 일정한 장소에 함께 모여 일하는 것이 필요한 경우가 많다. 회의나 워크숍이 그러한 경우이다.
          - 필요한 경우 절차에 따라 기법(예: 브레인스토밍)과 도구(예: SWOT)를 사용한다.
  • 2dInDirect3d/Chapter2 . . . . 3 matches
          백버퍼에 그림이 들어오거나 클리어 한 경우엔 그것을 앞으로 끌고나와야 한다. 그것을 하는 함수가 Present함수이다.
          1. 결과값은 D3D_OK, 실패했을경우엔 D3D_INVALIDCALL이나 D3D_DEVICELOST가 리턴된다.
          1. 네 인자 모두 NULL을 넣어주면 된다. (프레젠트는 한 화면단위로 하는 경우가 대부분이기 때문이다.)
  • 2학기파이선스터디/ 튜플, 사전 . . . . 3 matches
         == 튜플을 사용하는 경우 ==
         1. 함수에 있어서 하나 이상의 값을 리턴하는 경우
         8. D.setdefalut(key , x) : get 과 같으나 값이 존재하지 않을 때 값을 설정 (D[key] = x)
  • 2학기파이선스터디/서버 . . . . 3 matches
          except socket.error:
          print 'Socket Error'
          except socket.error:
          print 'Socket Error'
          except socket.error:
          print 'Socket Error'
  • 3N+1Problem/강희경 . . . . 3 matches
         1. 22의 경우 22, 11, 34...이렇게 되는데 22의 싸이클 안에 11, 34등의 싸이클도 포함되니 최대값에서 그들을 배제하는 것이 가능하다.
         2. 범위 안에 어떤수의 2의 배수가 있는 경우(또는 (x - 1)/3이 있는 경우) 1과 같은 이유로 그 수는 최대값에서 배제한다.
  • 5인용C++스터디/멀티쓰레드 . . . . 3 matches
         프로그램이 수행될 때 한 개의 데이터를 동시에 두 개의 프로그램이 핸들링할경우가 있습니다. 예를 들어 (a)라는 파일에 A프로그램은 데이터를 입력,수정하고 B라는 데이터는 데이터를 검색합니다. B가 읽고자 하는 시점에서 A라는 프로그램이 그데이터를 수정하고자 한다면 여기에서 문제가 발생됩니다. A가 수정한 후에 B가 읽게 할것인가? 아니면 B가 읽고 난후에 A라는 데이터가 수정을 하게 할것인가? 이런 문제점은 동시성을 가진 운영체제에서 해결해야할 중요한 항목입니다.
         A스레드와 B스레드가 동시에 진행하다가 특정 사건이 발생되었을 경우 이때 B스레드는 C라는 결과가 오기 전까지는 스레드 동작을 중지 해야 합니다. 만일 중지하지 않고 현재의 스레드를 계속적으로 진행을 시킨다면 큰 문제점이 나타날것입니다. B의 상태와 C가 생각하는 B의 상태가 같아야 합니다. 이렇게 같게 맟추는 것을 동기화 라고 합니다.
         만약 모든 철학자가 오른쪽의 스틱을 잡고 있고 왼쪽의 스틱을 기다린다면 문제가 발생한다. 그들은 아무도 왼쪽 스틱을 얻을 수 없으므로 모두 굶어죽게 된다. 물론 철학자들은 모두 사기를 칠 줄 모르며 먹는 양도 모두 같다고 가정한다. 이런 상태를 데 드락이라고 한다. 데드락을 방지하려면 어떻게 해야 할까? 이 애플릿에서는 다섯 개의 스틱 중 하나를 표시하여 표시된 스틱을 잡을 경우 반드시 내려놓고 다른 스틱을 시도하도록 하고 있다. 이렇게 하면 위와 같은 데드락 상황이 발생하기 전에 표시된 스 틱의 왼쪽 철학자는 오른쪽의 표시된 스틱을 내려놓고 왼쪽 스틱을 기다리게 되므로 표시된 스틱의 오른쪽 철학자가 왼쪽 스틱을 얻을 수 있게 된다.
  • AOI . . . . 3 matches
          * 어려운 문제의 경우 해당 알고리즘 지식이 필요한 경우가 많습니다. 문제를 해결한 후 꼭 문제 접근방식을 코드와 곁들여 넣어 주세요.
          * 기존 [AOI] 경우는 쉬운 문제 위주여서 언어실력의 기초를 다지는 효과가 컸지만 앞으로는 심도있는 문제를 풀어보며 알고리즘과 문제해결능력향상 위주의 공부를 하도록 하겠습니다.
  • AOI/2004 . . . . 3 matches
         uva robot의 경우 보통 300 번 이상의 test case 를 쓰는 것 같습니다. 동적 메모리가 아닌 정적으로 할당할 경우 이 점을 유의(?)하지 않으면 RE error(포인터 에러)가 납니다. 보창은 이것때문에 하루종일 프로그램을 뜯어고쳤으나, 결국 우연한 기회에 알게 되었습니다. LCD-Display의 경우 robot은 1000줄 이상을 test하는 걸로 보여집니다. -- 보창
  • AcceleratedC++/Chapter10 . . . . 3 matches
          하지만 이러한 자동 형 변환은 함수의 리턴형에는 적용되지 않는다. 따라서 함수를 리턴하는 경우에는 명식적으로 포인터임을 나타내야할 필요가 있다.
          그렇지만 언뜻보기에도 코드가 2번째의 경우 코드가 상당히 복잡하다는 것을 알 수 잇습니다.
          그러나 이 차이를 나타내는 값은 구현 시스템 마다 다를 수 잇고, 음수가 나타내는 경우가 있기 때문에 '''<cstddef>'''에는 '''ptrdiff_t'''라는 약칭을 통해서 그 데이터 형을 제공한다.
          // if it exists, write its contents, otherwise generate an error message
  • AcceleratedC++/Chapter3 . . . . 3 matches
          * stream으로부터 읽어들이는데 실패할 경우
          * type이 맞지 않을
          * 실패했을 경우에는 stream 초기화를 시켜줘야 한다.(4장에서 보자)
  • Ant . . . . 3 matches
         게다가, 팀 단위 작업을 한다고 할때, 작업하는 컴퓨터와 [IDE] 들이 각각 다른 경우, IDE 에 따라서 classpath, 배포디렉토리 경로들도 다를 것이다.
          1. Ant 얻기 - IDE 에 따라서 Ant 가 기본내장되어있는 경우가 많다.
          Ant 의 몇몇 특정 Task 들의 경우 (JUnit, FTP, Telnet 등) 해당 라이브러리가 필요하다. 이는 http://jakarta.apache.org/ant/manual/install.html#librarydependencies 항목을 읽기 바란다.
  • AttachmentMacro . . . . 3 matches
         파일이 이미 올려 있을 경우에는 그 파일을 받을 수 있는 링크가 자동으로 걸리게 되고, 파일이 아직 업로드되지 않았다면 파일을 업로드 할 수 있는 링크가 생성된다.
         이 경우 config.php에 {{{$use_convert_thumbs=1}}}를 넣어준다.
         == GUI를 사용하는 경우 ==
  • BasicJAVA2005/실습1/조현태 . . . . 3 matches
          boolean haveError = false;
          haveError = true;
          if (true == haveError)
  • BasicJava2005/5주차 . . . . 3 matches
          throws : 이 함수에서는 예외처리 하고 싶지 않을때 사용한다.
          throw : 임의로 예외를 발생시키고자 할 때 사용한다.
         연습 > 100이상의 정수가 입력되었을 때 예외를 발생시키는 프로그램을 작성해 보자.
  • BusSimulation . . . . 3 matches
          * 우리는 보통 버스를 기다릴 때 버스가 한꺼번에 오는 경우를 종종 보게 된다. 버스가 처음에 출발할 때는 일정한 간격으로 출발하였을 텐데 이렇게 몰려다니는 이유는 무엇일까? 이 이유를 컴퓨터로 시물레이션 해본다. 초기 단계에서는 최대한 간단하게 시작해서 점차 현실을 반영하는 시물레이션 으로 만들어 나간다. 하위 단계를 무시하고 다음 단계로 올라갈 수 없으면 순차적으로 시물레이션 단계를 올라간다.
          * 버스들이 몰려다니는 것을 확인할 수 있다.
          * 물리적인 추측만으로 버스가 연달아 오는 경우를 생각했었는데 이를 실제로 컴퓨터로 시물레이션 함으로써 그러한 현상이 일어나는 과정도 관찰할 수 있었고, 시물레이션 하는 과정에서 여러 가지 조건을 설정하면서 각 조건에 따라서 시물레이션이 어떻게 변할지도 생각해 볼 수도 있었다. 이러한 경험은 생활 속의 물리 현상을 나의 전공과 연계해볼 수도 있구나 하는 신선한 충격이었다. 이러한 일들이 쉬운일은 아니었지만 정말 좋은 경험이 되었다.
  • C++3DGame . . . . 3 matches
         "원점에서 동쪽을 바라보며 죽쪽으로 38도 회전하고, 위로 65도 회전한 후에 이 선을 따라 7.47피트로 이동"하는 방법으로 위치를 설명할 수 있다. 그러나, 수학적으로 풀 경우, 점을 이리저리 움직이면 처리하기가 더운 어려워진다. 그래서 이런 폴라 좌표계는 제어가 어렵기 때문에 3D엔진에서는 거의 사용하지 않는다.
         예를 들어, 컴퓨터를 모델링할 경우 다음 코드와 같은 구조로 저장할수 있다.
         이렇게 하면 게임에서 CPU를 움직여야 할 경우, CPU를 그리는데 사용하는 모든점에 대한 컴퓨터 중앙 만 움직이면 된다.[[BR]]
  • CNight2011/김태진 . . . . 3 matches
         2010년 경진대회 문제로 Dynamic, Back Tracking에 대해서 설명해주었어요. 간단하게 요약해보자면, 가능성을 따져보는건데요, 어느 시점에서 그 길이 답이되는 길일 가능성이 없어지면 그 경우의 수는 제외한다는 거죠.
         혹은 10만개의 선형적 자료 사이에 a~b사이의 값을 모두 합하는 시행을 1만번 한다는 경우, 미리 모든 값의 합을 저장해놓는다는 거예요. 3 4 6 2 인 경우, 다른 곳에 3 7 13 15를 저장해놨다가, a b값이 나오면 그 두값을 빼는 것만으로 바로 쉽게 그 값을 구한다는 거였어요.
  • Chapter II - Real-Time Systems Concepts . . . . 3 matches
         공유 자원이란 하나 이상의 Task가 같은 자원을 쓸 경우를 말한다. 두 Task는 배타적으로 같은 Resouce에 접근을 하며 Data의 파손을 방지한다. 이러한 방식을 mutual exclusion (상호 배타성) 이라고 한다.
         선점형 커널은 시스템의 반응성이 중요할 때 쓰인다. 선점형 커널의 경우 커널이 우선순위가 높은
         위와 같은 경우 Temp를 지역변수로 두어 태스크의 스택에 값이 저장 되면 될 것 같다.
  • CompleteTreeLabeling/조현태 . . . . 3 matches
          두개를 곱해서 21이하라는 조건인데.. 최악의 경우는 각각 3개의 뿌리를 가질때 깊이가 7이되면..
          3280개의 노드가 생긴다. 고로 이걸 3280!해서 나오는 경우의 수를 생각하면 10^10000이 사뿐히 넘어간다는... 애초에 계산이 될리가 없잖..
          21*1이라도 빠른 속도로 계산하지만.. 깊이가 깊어지는 경우에 대해선 아직 약하다..ㅠ.ㅜ
  • CryptKicker . . . . 3 matches
         e, i, o 와 같은 글자는 알파벳의 특성상 10퍼센트가 넘는 출현빈도가 나타난다. 기억나기론 E가 13퍼센트 정도였던것 같다. 이 규칙을 따르지 않는 문장과 단어가 있지 않나고 반박할지 모르지만 확률이다. 특수화된 경우의 문장과, 단어의 경우를 일반화 시키면 곤란하다. 이런 알파벳의 출현빈도는 몇줄의, 몇개의 단어에는 잘 맞지 않을테지만, 암호화된 문장과 문서가 많아질수록 그 출현빈도는 표중화된 확률에 거의 일치하게 된다.
  • CubicSpline/1002/NaCurves.py . . . . 3 matches
         class ErrorLagrange:
         class ErrorPiecewiseLagrange:
         class ErrorSpline:
  • DPSCChapter1 . . . . 3 matches
         ''The Design Patterns Smalltalk Companion'' 의 세계에 오신걸 환영합니다. 이 책은 ''Design Patterns Elements of Reusable Object-Oriented Software''(이하 DP) Erich Gamma, Richard Helm, Ralph Johnson, and Jogn Vlissides(Gamma, 1995). 의 편람(companion, 보기에 편리하도록 간명하게 만든 책) 입니다. 앞서 출간된 책(DP)이 디자인 패턴에 관련한 책에 최초의 책은 아니지만, DP는 소프트웨어 엔지니어링의 세계에 작은 혁명을 일으켰습니다. 이제 디자이너들은 디자인 패턴의 언어로 이야기 하며, 우리는 디자인 패턴과 관련한 수많은 workshop, 출판물, 그리고 웹사이트들이 폭팔적으로 늘어나는걸 보아왔습니다. 디자인 패턴은 객체지향 프로그래밍의 연구와 개발에 있어서 중요한 위치를 가지며, 그에 따라 새로운 디자인 패턴 커뮤니티들이 등장하고 있습니다.(emerge 를 come up or out into view 또는 come to light 정도로 해석하는게 맞지 않을까. ''이제 디자인 패턴은 객체지향 프로그래밍의 연구와 개발에 있어서 중요한 위치를 가지고 있으며, 디자인 패턴 커뮤니티들이 새로이 등장하고 있는 추세입니다.'' 그래도 좀 어색하군. -_-; -- 석천 바꿔봤는데 어때? -상민 -- DeleteMe)gogo..~ 나중에 정리시 현재 부연 붙은 글 삭제하던지, 따로 밑에 빼놓도록 합시다.
         ''Smalltalk Companion에서, 우리는 패턴의 'base library'를 추가하지 않습니다. 그것보다, 우리는 base library들을 Smalltalk 의 관점에서 해석하고 때?灌? 확장하여 Smalltalk 디자이너와 프로그래머를 위해 제공할 것입니다. 우리의 목표는 '''Design Patterns'''을 대체하려는 것이 아닙니다. '''Design Patterns''' 대신 Smalltalk Companion을 읽으려 하지 마시고, 두 책을 같이 읽으십시오. 우리는 이미 Gang of Four에서 잘 문서화된 정보를 반복하지 않을겁니다. 대신, 우리는 GoF를 자주 참조할 것이고, 독자들 역시 그래야 할 것입니다. -- 문체를 위에거랑 맞춰봤음.. 석천''
         하지만 ''Smalltalk Companion''은 ''Design Patterns'' 문서를 단순하게 반복 하는것 이상이고 C++ 코드가 있을 경우 Smalltalk 예로 바꾼다. 결과적으로, 우리가 추가적인 분석, 분류, 혹은 기존의 패턴에 대한 약간의 불일치하다고 느끼는 많은 상황이 있다. 그러므로, 우리의 많은 토의가 다른 객체 지향 언어에 잘 적용되야 할 것이다.
  • DebuggingSeminar_2005/DebugCRT . . . . 3 matches
         || _CRTDBG_CHECK_ALWAYS_DF || _CrtCheckMemory() 함수를 모든 new, delete 함수에 대해서 자동 호출 되도록 지정한다.[[BR]] 이 함수는 할당된 공간의 유효성을 지속적으로 체크한다. 즉 domainerror나 기타 메모리 access에 관한 부분을 검사한다. 대신 오버헤드가 상당하다. 그러나 그만큼 디버깅의 효율성을 높여줄 수 있다. ||
         || _CRTDBG_LEAK_CHECK_DF || 프로그램이 종료되는 시점에서 _CrtDumpMemoryLeaks()를 호출. 메모리 해제에 실패한 경우 그 정보를 얻을 수 있다. ||
         || _CRT_ERROR || 복구불가한 치명적 에러 ||
         대체로 클래스에서의 메모리 유출은 동적 멤버 변수들이 만들어졌을 때 해야하는 '삼의 법칙'을 지키지 않는데서 비롯되는 경우가 많다.
          동적 멤버변수를 사용하는 경우에는 대입, 할당 생성자, 소멸자를 반드시 만들어야한다.
  • DebuggingSeminar_2005/UndName . . . . 3 matches
         DLL 파일에 의해서 분석된 내용을 보면 DLL 에 함수의 이름이 이상하게(?) 변형되어 있는것을 확인하실 수 있는데(DUMPBIN.EXE 를 통해서 가능합니다.) 이 이름의 원형을 알고 싶을때가 있습니다. 그럴때 undname.exe 라는 파일을 사용하시면 아주 쉽게 확인해 보실 수 있습니다.
         {{{~cpp 'char * __cdecl MapDLLappyFunc(char *)'}}} 라는 알기 쉬운 형태로 변형되어 있음을 확인할 수 있습니다.
  • ExtremeBear/VideoShop . . . . 3 matches
         전화번호 뒷자리 물어보는 입력창이 뜨고 같은 번호 중복 되있는 것이 있을 경우 이름도 입력받아서
         이름 물어보고 없을 경우 신규 입력 받음
         등급에 안맞을 경우는 (주민등록번호와 관련되어서 알아서 프로그램이 처리해준다 )대여불가능하다고 나온다.
  • GuiTesting . . . . 3 matches
         GuiTesting 을 하는 이유는 여러가지가 있을 수 있다. GUI Programming 에 대한 TestFirstProgramming 에 대한 시도를 할 수 있기 때문이다. 해당 UI Control을 하나하나 만드는 일부터 시작할 수 있다. 하지만, 보통의 경우 UI Control을 만드는 일들은 IDE 툴들에서 하는 것이 더 편하다. GuiTesting 은 해당 이벤트 발생시에 따른 처리과정에 대한 TestFirstProgramming 을 시도하려고 할 때 도움을 줄 것이다.
         대부분의 경우는 TFP를 하는중에 logic 부분과 UI 부분을 분리함으로서 GuiTesting 을 복잡하게 하는 요소들을 줄일 수 있다. 그러면서 Model - View - Controler 의 형태가 유도되어질 것이다.
  • HanoiProblem . . . . 3 matches
         재귀함수가 사용되는 대표적인 예 몇가지를 보여줍니다. 재귀함수 사용에도 그 종류가 다른데, 대표적인 종류들을 보여주는 것이 중요합니다. "아, 재귀함수라는 것이 이렇게도 사용될 수 있구나!" 퍼뮤테이션/콤비네이션, 피보나치수열, 트리검색, 팩토리알, 조건문과 재귀호출로 반복문(while) 만들기 등이면 충분하지 않을까 합니다.
         반대로 문제가 너무 단순해서 복잡할 경우에는 오히려 100개, 200개 등의 복잡/일반적인 경우를 생각하는 것이 도움이 될 수도 있습니다.
  • HardcoreCppStudy/두번째숙제/ConstructorAndDestructor/변준원 . . . . 3 matches
         소멸자의 경우 ~Test(); 부분이 소멸자에 해당되고, 객체가 사라질때 호출되는데,
         전역적으로 선언되어서 생성된경우는 프로그램이 종료시에 호출됩니다.
         클래스에서 절때 빼놓으면 안되는 경우로, 위에 간단한 코드에서 빼 놓았습니다.
  • HelpOnActions . . . . 3 matches
          * `!DeletePage`: 파일 지우기 - 하단에 파일 지우기 액션 메뉴가 있는 경우가 있습니다. 이 액션을 누르면 페이지의 최종 백업본이 지워지지만 페이지의 역사는 계속 남아있으므로 (시스템 관리자가 이것을 지우지 않는 이상) 언제든지 복구할 수 있습니다. 일부 위키에서는 지우기가 활성화 되어 있지만, 모니위키에서는 기본적으로 관리자만이 페이지를 지울 수 있도록 설정되어 있습니다.
          * `!LikePages`: 비슷한 이름을 가지는 페이지 목록을 찾아줍니다. 영문의 경우 적절히 잘라내어 앞/뒤 단어별로 검색해주며, 한글일 경우에는 앞/뒤 한글자 이상을 잘라내어 비슷한 파일 이름이 있는지 찾아줍니다.
  • HelpOnPageCreation . . . . 3 matches
         새롭게 페이지를 만드는 경우도 일반 페이지를 편집하는 방식과 마찬가지로 고칠 수 있습니다. 편집 폼에 내용을 채운 후에 최초 저장을 하면 페이지가 진짜로 만들어지게 됩니다. 한번 만들어진 페이지는 일반적으로 지울 수 없도록 되어있습니다. [[FootNote(페이지 지우기는 모니위키 설정을 통해 변경가능합니다. 또한 모니위키에서는 페이지를 지우더라도 변경 역사까지 지우게 되어있지 않습니다. 따라서 언제든지 복구할 수 있습니다.)]] 그러므로 위키 페이지를 처음 만들 때에 위키 페이지 이름을 잘 만드는 것이 낫겠지요.[[FootNote(모니위키에서는 페이지이름을 변경하는 것도 가능하며, 페이지이름에 대한 별명을 만드는 방식도 지원합니다)]]
         템플릿 페이지는 조금 특별하게 취급되는 페이지입니다. 페이지를 만들되 페이지 이름이 "'''Template'''"로 끝나는 페이지를 만들면 그것이 템플릿 페이지가 됩니다. [[FootNote(위키 관리자에 의해서 Template로 끝나는 이름이 아닌 다른 형태의 이름으로 그 설정을 바꿀 수도 있습니다)]] 이렇게 만들어진 템플릿 페이지는 페이지를 새롭게 만드는 경우에 목록으로 제시되게 되며, 템플릿 페이지를 선택하면 그것이 처음으로 편집 폼에서 인용되어 처음 만드는 페이지를 보다 쉽게 만들 수 있게 해줍니다.
         다음의 변수들은 페이지가 최초 저장될 때에 자동으로 적당한 값으로 대치됩니다. 이 변수들은 미리보기할 때는 있는 그대로 나오며, 템플릿 페이지인 경우에는 변수가 대치되지 않고 있는 그대로 저장된다는 사실에 유의해 주세요.
  • HowToCodingWell . . . . 3 matches
          * 흠.. 일단 일련의 동작들을 개별적으로 나누고 (주석을 달아놉니다!!ㅎ__ㅎ) 하나하나 함수를 만들어 가면 눈에 잘 들어오지 않을까요?? -[김상호]
          * 보통 코딩을 학교 프로젝트 아니면 과제때만 많이 하게 되는 데, 그 보다는 평소에 즐기듯(?) 코딩해야 합니다. 급하게 쫓기면서 하는 코딩은 결과물을 만들어 내기 위한 코딩이므로 생각하지 않고 코딩하게 됩니다. 평소에 자신이 필요한 프로그램(ex 선대계산기, 알송 리스트 자동 갱신 프로그램) 들을 느긋하게 코딩해 보면 급하게 코딩 하지 않기 때문에 더욱 많은 생각을 하면서 코딩을 할수 있습니다. 진정으로 실력이 느는건 이런 생각하면서 코딩하면서 늘지 않을까요? - [안혁준]
          * 글을 잘 쓰기 위해서 필요한 것 세가지는 다독(多讀), 다작(多作), 다상량(多商量)이라는 유명한 말이 있습니다. 많이 읽고 많이 쓰고 많이 생각하라는 뜻입니다. 코딩을 잘하기 위해 필요한 것도 같다고 생각합니다. 좋은 코드를 많이 접해보고, 직접 코딩을 많이 해보고, 프로그래밍에 대해 고민을 많이 해보면 잘하게 되지 않을까요? - [김수경]
  • InterestingCartoon . . . . 3 matches
          저에게는 모호합니다. 애니와 코믹스도 크게 나눈 것입니다. 저에게 슬레이어즈의 경우 애니는 Slayers와 Slayers Next수작이지만 Try와 극장판은 평작으로 생각하거든요. 베르세르크만 해도 애니는 평작, 코믹스는 수작으로 생각합니다. 반면 더파이팅은 둘다 저에게는 수작입니다. 슬램덩크는 저에게 코믹스는 수작, 애니는 쓰레기 입니다. --NeoCoin
          중복이 가능하지 않을까요? 다시 봤는데, 영 아니다. 이런 것 말이지요. --NeoCoin
         그냥 페이지를 나누어도 상관없을듯 합니다. NoSmok 의 경우 NoSmok:애니메이션명대사 , NoSmok:만화속명대사 가 따로있긴 합니다. Responsibility 가 2개 이상이라 느껴진다면 이를 분리하는것도 하나의 방법이겠죠. (한편으로는, 이 페이지의 컨텐츠에 비해 너무 Rigid 하게 나가는 거 아닌가 하는 생각이 듭니다. 이 페이지로부터 다른 사람이 얻어가는, 또는 자신이 이익이 얻는 부분은 어떤건가요? 또는 어떠한 내용이 있다면 사람들로부터 더 활발한 이야기꺼리를 끌어낼 수 있을까요?) --[1002]
  • IpscAfterwords . . . . 3 matches
          * 전에 K-In-A-Row 같은 경우는 일종의 StepwiseRefinement 의 형식이 나와서 비교적 코딩이 빠르게 진행되었었고, (비록 답은 틀렸지만) Candy 문제의 경우 덕준이가 빨리 아이디어를 내어서 진행이 빨랐었는데, 실전에서는 그런 경우들이 나오지 않아 버겨웠던듯 하네요.
  • JTDStudy/첫번째과제/상욱 . . . . 3 matches
          else: raise ValueError
          except ValueError:
          * 이 언어들의 시작점으로는 간단한 계산이 필요할때 계산기보다 열기보다 늘 IDLE나 rib(ruby)를 열어서 계산을 하지. 예를들어서 [http://neocoin.cafe24.com/cs/moin.cgi/ET-house_%ED%99%98%EA%B8%89%EC%BD%94%EC%8A%A4?highlight=%28et%29 et-house환급코드 in CenterStage] 같은 경우도 그래. 아 그리고 저 코드 군에 있을때 심심풀이 땅콩으로 짜논거. SeeAlso [http://neocoin.cafe24.com/cs/moin.cgi/%EC%95%BC%EA%B5%AC%EA%B2%8C%EC%9E%84 숫자야구 in CenterStage]
  • JavaStudy2003/두번째과제/노수민 . . . . 3 matches
          그래서 디버그 및 결과 확인불가.;
         자바 언어를 이용하여 객체를 생성하고 필요에 따라 값을 초기화 해 주어야 하는 경우
         * 메소드 내에서 변수와 객체의 이름이 같을 경우 변수 앞에 this를 붙임
  • JavaStudy2004/클래스상속 . . . . 3 matches
          인스턴스 변수의 경우 클래스에 새로운 변수를 만들었다면, 현재 클래스의 변수와 상위클래스에서 정의된 모든 변수를 가질수 있다. 따라서 모든 클래스들의 조합으로 현재의 객체를 위한 템플릿을 형성하게되고 필요한 정보를 채우는 것이다.
          * 디폴트 전달인자 : type functionName( type A1, type A2, A3 = 0 );와 같이 값이 전달 되지 않을경우 자동을 전달되는 값을 가지는 함수의 기능을 말합니다.
  • KnightTour/재니 . . . . 3 matches
          나이트가 위치한 셀이 고립된 경우 BackStep 과정을 한 번 더 실행하면 루트를 찾는 시간이 훨씬 짧아짐.
          몇몇 경우에서 broot-force 보다 더 검색을 많이 하는 경우도 발견됨.
  • Linux/MakingLinuxDaemon . . . . 3 matches
         상기에서 확인가능 하듯 daemon 으로 동작하는 프로그램은 터미널이 할당되지 않는다. 또한 기본적으로 ParentPID (ProcessID)가 1번으로 설정되어있음을 알 수 있다. 이는 1번 PID를 가진 init 프로세스가 데몬의 동작을 관리한다는 사실을 알 수 있게 한다.
         새로운 세션을 만든다. 일반적으로 tty 를 부여해야하지만, 부여하지 않을 경우 터미널이 없는 세션으로 생성된다.
  • Linux/필수명령어 . . . . 3 matches
         (X시스템이 있기는 하지만 모든 경우에 Xmanager 같은 것을 써서 X로 접근할 수는 없고, X상에서의
         || update-rc.d || rc.* 에 시작 프로그램을 등록한다. defaults 옵션을 줄경우 모든 running level 에 등록된다. (Debian) ||
         ''패키지 관리 명령어는 각 시스템에 따라서 리눅스의 경우 배포판의 종류에 따라서 다름.''
  • LoadBalancingProblem . . . . 3 matches
          SuperComputer 사는 N 개의 CPU 로 이루어진 슈퍼컴퓨터를 제작하였다. 각각의 CPU는 1에서 N 까지 번호가 새겨져 있으며 각각 독립적인 작업을 수행한다. 새로운 작업이 생기면 무작위로 한개의 CPU 에 그 작업이 할당된다. 이럴 경우 어떤 CPU 에는 작업이 엄청 많고 다른 CPU 에는 할당된 작업이 적거나 아예 없는 상황이 발생하게 된다. 이럴경우 각 CPU 에 작업을 적당하게 분배하여야 하는데 각각의 재분배 작업은 N번 CPU가 1-N, 1-N CPU 에 각각 하나씩의 작업을 전달하는 것이다. 차근차근 살펴보면,
          1. (...) N 번 CPU 를 본다. 작업을 전달해줘야 할 경우 N 번 CPU 의 오른쪽에는 CPU 가 없으므로, 왼쪽으로만 전달할 수 있다.
  • LoveCalculator/zyint . . . . 3 matches
          if(str[i]>=97 && str[i]<=122) // 소문자 a~z일경우
          if(c>=97 && c<=122) // 소문자 a~z일경우
          //한자리 일경우 종료
  • MFC/DynamicLinkLibrary . . . . 3 matches
         확장자가 반드시 DLL이어야 하는 것은 아니지만, DLL 이 아닌경우에는 프로그래머가 이를 로드하는 부분을 따로 만들어야 한다. .vbx .ocx같은 것은 특정한 종류의 컨트롤들을 포함하는 DLL 들이다.
         runtime dynmaic linking 의 중요한 점은, 런타임 상에서 해당 모듈을 교체할 수 있다는 점이다. winamp 의 나 KMP 등와 같은 플러그인을 제공해주는 프로그램의 경우 대부분 이러한 runtime-dynamic linking 방법을 이용한다.
         DLL 에서 동적으로 메모리를 생성하는 경우, 해당 DLL 을 이용하는 프로세스의 힙에 해당 메모리 공간이 잡히게 된다. DLL 이 하나만 올라간다고 메모리가 공유되진 않는다.
  • MFC/MessageMap . . . . 3 matches
         = 사용자 정의 메시지 발생시키기 =
          * 사용 예 : 어떤 클래스가 view 클래스의 멤버 변수이다. 해당 클래스는 파일을 다운로드 받는 클래스인데 해당 클래스에서 다운로드가 끝났을 경우 view에 있는 serialize 함수를 실행해야 한다. 허나 현재 view클래스가 그 해당 클래스를 멤버로 가지고 있기에 include 로 해당 클래스에서 view 클래스를 포함할 수도 없고, 또 view 클래스의 현재 실행되는 객체를 얻을 방법도 마땅히 없다. 이때 해당 클래스에서 다운로드가 끝난 시점에서 다운로드가 끝났다는 메시지를 발생시켜서 view에 있는 serialize 함수를 실행시킬 수 있다. 이게 바로 사용자 정의 메시지 발생을 이용한 사례..
  • MFCStudy_2002_2 . . . . 3 matches
          * [07/18] - 공지는 수시로 확인해 주세요. 부탁드립니다!
          * [08/18] - 이번주는 결국 못모였습니다. 다들 바쁜 모양이더군요. 다음 주 초에 모입시다. 월요일 쯤이 좋을 것 같습니다만, 모두 여기를 확인할 지 의문이군요.
          ' 저는 확인 하긴 했는데.. 월요일이네요~ 에헤헤~ ^-^;; 이번주 내내 학교 나올거 같으니깐.. 시간 정하세요..^-^;;-성재
  • MatrixAndQuaternionsFaq . . . . 3 matches
         x축은 첫번째 행 앞3개, y축은 두번째 행, z축은 세번째 행 과 연관될수 있죠.. 그래서 단위행렬의 경우 1000 0100 0010 0001 식으로 나오는데
         isotropic한 행렬의 경우 전치(회전부분3x3을)하면 역행렬이 됩니다. 음.. 그리구.. 4x4행렬에 보면 traslation 부분도 있는데 그 부분의 부호를 바꿔주면
         그리구.. transform 행렬을 적용시킨 vertex normal은 정규화(크기1로..) 되어있지 않을수 있으니.. 것두 다시 해야 한다고 합니다.'''
  • MicrosoftFoundationClasses . . . . 3 matches
          그러지 않을 경우 링커가 다음의 에러를 발생시킨다.
          nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
          nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
          Debug/ex13_01.exe : fatal error LNK1120: 2 unresolved externals''
  • MoinMoinNotBugs . . . . 3 matches
         '''The HTML being produced is invalid:''' ''Error: start tag for "LI" omitted, but its declaration does not permit this.'' That is, UL on its lonesome isn't permitted: it must contain LI elements.
         Also worth noting that ''Error: Missing DOCTYPE declaration at start of document'' comes up at the HEAD tag; and ''Error: document type does not allow element "FONT" here'' for a FONT tag that's being used inside a PRE element.
  • MoniWikiPlugins . . . . 3 matches
         모니위키는 MoinMoin과 호환하는 Macro를 가지고 있으며, 그 매크로에 상응하는 action을 각각 가지고 있는 경우 혹은 액션만 있고 매크로는 없는 경우가 있습니다.
         액션 혹은 매크로만 각각 지원하거나 모두 지원하는 경우도 있다.
  • MySQL/root암호분실시 . . . . 3 matches
         ["MySQL"]를 설치하는 경우 암호를 잃어버렸거나 잘못입력하는경우 또는 너무 오래되서 암호를 잃어버리는 경우에 다음과 같은 방법으로 암호를 설정하실수 있습니다.
  • NSISIde . . . . 3 matches
          - NsisProcess 이벤트 발생시엔 누가 어떻게 통지받아서 Output에 찍어주나?
          * 하지만, View/Document 구조가 한편으로는 방해물이.. 이미 디자인이 되어버린 Framework 의 경우 어떻게 적용을 시켜나가야 할까. 일단 주로 알고리즘과 관련된 부분에 대해 Test Code를 만들게 되었다. 계속 생각해봐야 할 문제일 것이다.
          * PairProgramming 이 아닌 Solo 인 경우엔 주위의 유혹이 많다. -_-; 의식적으로 휴식시간을 10분정도 배당을 했지만, Iteration 3 때 확실히 집중도가 떨어졌다.
  • NumericalAnalysisClass/Report2002_2 . . . . 3 matches
         (5) Plot the Error f(x) - L10(x)
         (6) Plot the Error f(x) - L3(x)
         (7) Plot the Error f(x)- S3(x)
  • OurMajorLangIsCAndCPlusPlus/float.h . . . . 3 matches
         ||FLT_EPSILON ||1.0과 더했을 때 float형으로 1.0이 되지 않을 최소의 값 ||1.192092896e–07F ||
         ||DBL_EPSILON ||1.0과 더했을 때 double형으로 1.0이 되지 않을 최소의 값 ||2.2204460492503131e–016 ||
         ||LDBL_EPSILON ||1.0과 더했을 때 long double형으로 1.0이 되지 않을 최소의 값 ||2.2204460492503131e–016 ||
  • OurMajorLangIsCAndCPlusPlus/stdio.h . . . . 3 matches
         || int ferror(FILE *) || 스트림에 오류가 있을경우 0이 아닌값을 리턴 합니다. ||
         || char * fgets(char *, int, FILE *) || char*에 int의 길이만큼 스트림에서 읽어서 저장한다. 파일의 끝이나 오류일 경우 NULL을 리턴한다. ||
         || char * gets(char *) || 표준 입출력에서 한줄을 입력받는다. 오류가 발생할 경우 NULL을 리턴한다. ||
         || void perror(const char *) || 마지막 에러에 대한 오류메시지를 출력한다. ||
  • PC실관리/고스트 . . . . 3 matches
          * '''CAUCSE''' 계정의 경우 현재 디폴드 암호가 없는데 기본 암호를 만들고 '''control userpasswords2'''를 이용해서 기본 부팅시 자동 접속이 되도록 설정해야함
          이 계정의 경우 Users 로 계정을 제한해서 프로그램의 설치및 제거에 제한을 두어야 차후에 문제가 발생하지 않을 것으로 생각됨.
  • PerformanceTest . . . . 3 matches
         rdtscEx명령은 36클럭을 소요하며 측정 구간을 클럭 단위로 측정할 수 있는 강력한 시간 측정 방법이다. 하지만 이 방법은 클럭 수만 측정할 뿐 시간을 알 수는 없다. 정확한 시간을 알려면 시스템의 CPU클럭을 알아야 하며 측정한 클럭값을 CPU클럭으로 나누어야 시간이 나온다. RDTSC명령을 수행할 때 CPU가 수행 속도 향상을 위해서 CPU 명령 순서가 바뀔 수 있기 때문에 CPUID명령을 전에 수행해 명령 순서를 맞춰야 하는 경우도 있다. 자세한 설명은 인텔에서 제공하는 성능 모니터링을 위한 RDTSC 명령 사용법을 참조하기 바란다.
         Windows는 Multi-Thread로 동작하지 않습니까? 위 코드를 수행하다가 다른 Thread로 제어가 넘어가게 되면 어떻게 될까요? 아마 다른 Thread의 수행시간까지 덤으로 추가되지 않을까요? 따라서 위에서 작성하신 코드들은 정확한 수행시간을 측정하지 못 할 것 같습니다. 그렇다고 제가 정확한 수행시간 측정을 위한 코드 작성 방법을 알지는 못합니다. -_-;
         멀티쓰레드로 인해 제어권이 넘어가는 것까지 고려해야 한다면 차라리 도스 같은 싱글테스킹 OS에서 알고리즘 수행시간을 계산하는게 낫지 않을까 하는 생각도 해봅니다. (하지만, 만일 TSR 프로그램 같은 것이 인터럽트 가로챈다면 역시 마찬가지 문제가 발생할듯..) 그리고 단순한 프로그램의 병목부분을 찾기 위한 수행시간 계산이라면 Visual C++ 에 있는 Profiler 를 사용하는 방법도 괜찮을 것 같습니다. 해당 함수들의 수행시간들을 보여주니까요.
  • Plugin/Chrome/네이버사전 . . . . 3 matches
          * 크롬은 아시다시피 Plug-in을 설치할수 있다 extension program이라고도 하는것 같은데 뭐 쉽게 만들수 있는것 같다. 논문을 살펴보는데 사전기능을 쓰기위해 마우스를 올렸지만 실행이 되지 않았다.. 화난다=ㅂ= 그래서 살짝 살펴보니 .json확장자도 보이는것 같지만 문법도 간단하고 CSS와 HTML. DOM형식의 문서구조도 파악하고 있으니 어렵지 않을것 같았다. 그래서 간단히 네이버 링크를 긁어와 HTML element분석을 통해 Naver사전을 하는 Plug-in을 만들어볼까 한다.
          * javascript의 다른 예제를 확인하니 document.body.ondblclick = 함수명 을 작성하면 똑같이 작동되는것을 확인했다.
  • PracticalC . . . . 3 matches
          2.프로그램을 유지,보수 하는 경우 프로그램을 이해하는데 많은 시간을 필요로 하므로
          참조 : 다른 프로그램을 참조했을 경우
          애러 핸들링 : 애러 발생시 처리방법
  • PrimaryArithmetic/1002 . . . . 3 matches
          * 자릿수가 넘어가는 경우 - 1234 + 123
          * 103 + 597 (즉, 0+9 가 1+9 가 되면서 carry 를 다시 발생시킬 때)
         마지막 경우도 역시 통과. 아까보다는 좀 더 나아보여서 이즈음에서 그만 둠.
  • ProgrammingContest . . . . 3 matches
         나이나 학력 제한이 전혀 없습니다(Open경우). 팀은 세명까지 가능하고, 혼자서도 참가 가능합니다. 사용 가능 언어는 Java, C++, Pascal, Python 등 입니다. 제한 조건은 한 팀은 프로그램 개발을 위해서는 하나의 컴퓨터만 사용해야 한다는 것입니다. 이번 금요일(2002/5/10)에 한국 시간으로는 오후 9시부터 5시간 동안입니다. 온라인(이메일)으로 진행합니다. (see also .http://ipsc.ksp.sk/rules.php )
         특이한 점은 토너먼트 형식으로 제한된 시간내에 프로그래밍 대결을 벌인다는 거죠. 이긴자에게 상금을 줍니다만 미국외의 사람에겐 받을 자격이 없는 것 같기도 합니다. 스윙 애플릿을 다운로드 받아서 주어진 문제에 대해 자바, C++, C# 등으로 코딩할 수 있고 제대로 해결했는지 그 자리에서 바로 확인할 수 있습니다. -- 박지훈
         http://ace.delos.com/usacogate 에서 트레이닝 받을 수 있지요. 중,고등학생 대상이라 그리 어렵지 않을겁니다. ["이덕준"]은 ProgrammingContest 준비 첫걸음으로 이 트레이닝을 추천합니다.
  • ProgrammingLanguageClass/2006/EndTermExamination . . . . 3 matches
         d) if에서 Dijkstra's Guarded Command 에서 Boolean Expression 중 어떠한 것도 참이 아닌경우 구문을 벗어나는지 묻는 문제
         a) 상기 소스에서 fun 함수의 파라메터 전달 방식이 Pass-By-Value, Pass-By-Name 의 경우로 나누어서 출력 결과값을 나타내라 (소스는 대충 비슷한거 같은데 확실하지 않음. -_-;; 기억에 의존하다 보니 ㅋㅋ)
         셀렉터의 경우 런타임 에러 발생, 루프시에는 루프를 벗어난다.
  • ProgrammingPartyAfterwords . . . . 3 matches
         요구분석을 마치고 디자인을 하기로 한 시간이 되었기에 팀원들은 한 테이블에 모였다. 그리곤 CRC 카드를 이용해서 디자인에 들어가기 시작했다. 암묵적으로 ["구근"]님이 ZP#2의 무게중심이 되어서 디자인 회의가 시작되었다. 어떤 클래스들이 필요한가, 어떤 이벤트를 누가 발생시키고 그 이벤트를 누가 알아야하는가에 대한 이야기가 오가는 가운데 ["데기"]는 문제파악 조차 제대로 안되어서 무척 혼란스러웠다. 서로 요구분석 이해에 차이가 있었음에도 불구하고 디자인은 계속 진행되었고, 시간은 계속 흐르고 흘러서 구현을 시작하기로 한 시간을 훌쩍 넘어버렸다.
         멘터인 1002는 '저렇게 하면 나중에 main 함수 어떻게 만들까.. OO Style 이라면 main 루틴 부분이 좀 짧긴 하겠지만, C 라면 좀 힘들지 않을까' 라고 생각, 5시가 가까워지는 4시 20분쯤에 각 모듈 부분을 통합할것을 제안 했다. 통합 중간중 의견 조율을 하는 중간에 ZP#2 멘터인 김창준씨는 두 팀으로 나누어졌을 때 서로 엇갈려서도 Pair 를 바꿔보도록 제안, Moa 의 두 팀은 한명씩 서로 바꾸어보기도 하며 일을 진행해 나갔다.
         각 팀별로 전지에 자신들의 디자인을 표현하고 모두에게 그 디자인에 대해 설명하는 식으로 발표를 하였다. 각 팀별 디자인의 특징을 볼 수 있었다. '뭘 잘못했느냐?'가 아니라 '어떻게 해야 잘할 수 있었을까?'와 같은 '올바른 질문'을 던짐으로써 더 배울 수 있다는 것을 확인할 수 있었다. 그리고 발표할때 What 과 How 를 분리하고 What 만을 전달해야 한다는 것이 중요하다는 것을 관찰할 수 있었다.
  • ProjectPrometheus/BugReport . . . . 3 matches
          * BtoBRel 에는 들어있는 bookid 가 book 에는 없는 경우가 있다. 확인이 필요하나, 현재 도서관이 죽어서 할수 없다. 열리는데로 해봐야 한다.
         우리는 여기에서 frequent release(give workable system to the customer every week)가 얼마나 중요한가 새삼 확인할 수 있다. --JuNe
  • ProjectPrometheus/EngineeringTask . . . . 3 matches
          * 책에 대한 구체적인 정보를 확인할 수 있다. 책 정보를 볼 때, 타 인터넷 사이트에 대한 (amazon, wowbook, yes24 등등) Link 를 제공받아 이용할 수 있다.
          * Best Book (Rating, 책 정보 열람에 따른 점수 기준)을 확인할 수 있다.
          * 새로 들어온 책을 분야별로 확인할 수 있다.
  • ProjectSemiPhotoshop/요구사항 . . . . 3 matches
          참신한 아이디어를 추가할 경우 최대 3점까지 추가 점수가 가산될 수 있다.
          * 레포트 표지에 자신이 수행한 내용 중 3)을 추가한 경우 설명서의 6, 7, 8과 같이 표시하고, 4)의 내용을 추가한 경우 설명서의 번호 9.를 표시한다.
  • ProjectVirush/Rule . . . . 3 matches
         * 명령을 수행하는데는 현실 세계의 시간이 필요하다. 따라서 플레이어는 게임에 접속해서 명령이 수행될 시간을 예약한다. 그리고 예약한 시간에 자신의 명령이 수행되었는지를 다음 번에 확인하고 새로운 전략을 세운다.
          * 기본 항체가 새로운 바이러스를 잡기에 모자라는 경우(바이러스 사살 속도<바이러스 증식 속도), 숙주는 새로운 바이러스임을 알아차리고 이에 특화된 항체를 생산한다. 특화된 항체는 기본 항체보다 바이러스 사살 속도가 빠르다.
          * 한 번 특화된 항체를 생산한 경우 이를 '''습득 항체'''라고 하고, 특화된 항체를 생산하는 과정이 빨리 일어난다.
  • ProjectZephyrus/Server . . . . 3 matches
          * JCreator가 컴파일할 java파일의 선후 관계를 파악하지 못하여, 컴파일이 되지 못하는 경우가 있다. 이럴 경우 만들어둔 스크립트 javac_win.bat 을 수행하고, 이 스크립트가 안된다면, 열어서 javac의 절대 경로를 잡아주어서 실행하면 선후관계에 따른 컴파일이 이루어 진다. 이후 JCreator에서 컴파일 가능
         |||||| 많은 접속후, 혹은 명령 처리중에 DB Connection이 죽는 경우||
  • ProjectZephyrus/간단CVS사용설명 . . . . 3 matches
          추가후 리부팅 <-확인 안해봤음
          그룹 확인
         groups 확인한아이디
  • Refactoring/BuildingTestCode . . . . 3 matches
         그때 나는 increment development단계에 있었고, 나는 매번 increment 을 완료할때 클래스들에 test method들을 추가했다. 그때 했던 프로젝트는 꽤 작았었고, 우리는 우리의 increment 주기는 한주 단위정도였다. 테스트의 실행은 는 꽤 수월하게 되었다. 하지만 테스트들은 실행하기 쉬웠지만, 테스트를 하는 것은 여전히 지겨운 일이였다. 이것은 내가 체크해야 하는 모든 테스트들이 console 에 결과를 출력하도록 만들어졌기 때문이다. 나는 꽤 게으른 사람이고, 나는 일을 피하기 위해 꽤 열심히 일을 준비했다. 나는 이 클래스들이 프린팅 해주는 것을 체크하는 대신, 컴퓨터가 테스트를 수행하도록 했다.내가 할일은 테스트 코드에 내가 기대하는 결과를 작성하고, 그 비교를 수행하는 것이다. 자, 나는 모든 클래스들의 test method를 수행할 수 있었고, 모든 일이 잘 되면 단지 'OK' 가 출력되는 것을 확인하면 되었다. 이 클래스는 지금 스스로 자기 자신을 테스트를 했다.
         모든 테스트가 자동화되었는지 확인하고 테스트들의 결과를 테스트 코드 스스로 체크하도록 해라.
         이제 테스트는 컴파일 만큼이나 간단해졌다. 나는 컴파일 할 때 마다 테스트를 했다.그리고 곧 나는 버그를 바로바로 찾아낼 수 있었다. 나는 내가 디버깅을 하는데 그리 많은 시간을 소비하지 않았음을 알게 되었다. 만일 내가 이전 테스트에 의해 주의하도록 한, 버그가 있는 코드를 추가했을 경우, 테스트를 실행할 때 바로 볼 수 있었다.
  • SeminarHowToProgramIt . . . . 3 matches
          * C++ 3대 : VC++ 6.0 (설치 되어 있는 상태 확인차원)
          C++ 3대 : VC++ 6.0 (설치 되어 있는 상태 확인)
         0,1,2 번 인원이 될경우 동시 진행, 2번 과정 병렬 수행 3번 단일
  • SingletonPattern . . . . 3 matches
         SingletonPattern 은 남용할 경우 위험하다. 여전히 Global object 이기 때문이다. 즉, Singleton 을 이용하는 모든 모듈은 Singleton Object 와 관계를 맺고 있는 것이 된다.
         적절한 상속관계와 오브젝트를 인자로 넘겨주는 방법으로 Singleton 의 남용을 적절하게 줄일 수 있는 경우가 많다.
         이전에 ProjectZephyrus 를 프로그래밍할때 느낀점이라면, 초반에 디자인을 할 때 일수록 Singleton 을 쓸 생각을 하지 않는것이 좋겠다는 점이다. 초반에 디자인을 할때엔 (특히 Conceptual Model 단계정도만 생각하고 프로그래밍에 들어가는 사람의 경우) 어떠한 클래스건 대부분이 인스턴스가 한개이다. -_- 그렇다고 이 모든 것들을 글로벌 객체로 만들어내는 것은 그리 좋지 않다. --["1002"]
  • Spring/탐험스터디/2011 . . . . 3 matches
          1.3. 책의 소스를 그대로 쳤을 경우 Class.forName("com.mysql.jdbc.Driver"); 문장에서 에러가 나는데 인터넷에서 mysql-connector-java-X.X.X.jar 를 받아서 참조 라이브러리에 추가한다.
          1.2. 불변객체와 가변객체 : 불변객체는 생성된 이후에 내부의 필드에 대한 수정자가 없는 객체를 말한다. 내부 필드에 접근이 불가능하기 때문에 값이 변하지 않는다. 따라서 한 번 생성한 이후에는 필요한 곳에 같은 객체를 재사용할 수 있다. 가변객체는 내부의 값에 접근할 수 있는 메소드를 공하는 객체를 말한다. 가변객체를 불변객체처럼 한 번 생성한 후에 여러 곳에서 사용할 경우 한 곳에서만 값이 바뀌어도 모든 값이 다 바뀌므로 가변객체는 매번 사용할 때 마다 새로 생성(new)을 해 주어야 한다.
         Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
  • StaticInitializer . . . . 3 matches
         이를 방지하려면, StaticInitializer 를 일반 Method 로 추출한뒤, 생성자에서 이를 호출한다. (단, 인스턴스를 2개 이상 만드는 클래스인경우 문제가 있겠다.)
         그 외에 Static 의 경우, 그 사용 가능 Focus가 Global 해지기 때문에 이 또한 Bad Smell 이 될 가능성이 농후하다. 개인적으로는 가급적이면 Static Variable 을 쓰지 않는 습관을 들이려고 한다. --[1002]
          Mock 생성자에서 값이 교체되어도 StaticInitializer 자체가 실행된다는 점에는 변함이 없습니다. 만일 StaticInitializer 에서 외부 자원들을 사용한다면, Side-Effect 들을 피하기 어려운 경우가 많다는 것을 강조하고 싶었습니다. --[1002]
  • TestDrivenDatabaseDevelopment . . . . 3 matches
         [1002]의 경우 TDD 로 DB 부분을 만들때 어떻게 진행될까 궁리하던중 두가지를 실험해보았다. 보통은 TDD로 DB 부분을 만들때 DB Repository 부분에 대해서 MockObject 를 만들지만, 다음은 Mock 을 안만들고 작성해봤다. 어떤 일이 일어날까를 생각하며.
         작성하는중에, DB에 직접 접속해서 확인하는 코드가 테스트에 드러났다. (이는 예상한 일이긴 하다. DB 에 비종속적인 interface 를 제외하더라도 DB 쪽 코드를 계속 쌓아가기 위해선 DB 코드를 어느정도 써야 한다.) 처음 DB 에 직접 데이터를 넣을때는 side-effect가 발생하므로, 테스트를 2번씩 돌려줘서 side-effect를 확인을 했다. 점차적으로 initialize 메소드와 destroy 메소드를 만들고 이를 setUp, tearDown 쪽에 넣어줌으로 테스트시의 side-effect를 해결해나갔다.
  • TheJavaMan/비행기게임 . . . . 3 matches
          - 플레이어 비행기는 HP와 MP를 갖는다.(처음 시작할때 랜덤하게 최고치를 정하게 된다..따라서 엄청 안좋은 비행기로 시작하는 경우도 생긴다-_-;;)
          - 미사일의 파워 : 같은 종류의 적 비행기를 미사일에 성능에 따라 두번 맞춰야 터지는 경우가 있는가 하면, 한발로 적 비행기를 폭파시키고도 미사일이 계속 나가는 경우도 있다.(이 부분은 미사일에 HP개념을 두어, 미사일과 적기가 접촉하면 같은 속도로 HP가 깎이면서 먼저 HP가 0이되는 것이 터지는 방법으로 구현한다)
  • ToyProblems . . . . 3 matches
          1. 선배가 이 간단한 문제를 다양한 패러다임으로 다르게 풀 수 있다는 것을 보여주고 간략히 설명한다. 이때, 대부분의 경우 긴 설명이 필요없다. 이미 문제를 풀어봤기 때문이기도 하고, 문제 자체가 간단하기 때문이기도 하다.
         학생은 이 경험을 통해 프로그래밍 "개념"과 "패러다임"들을 학습하게 되며, 어떤 경우에 어떤 패러다임이 더 적절한지 판단할 능력이 생기고, 무엇보다도 한가지 패러다임에 대한 초기 각인(새끼새가 처음 본 흰색을 무조건 어미라고 생각하는 효과)을 깨트리고, 좀 더 자유로워질 수 있다 -- 한가지 패러다임만 아는 사람보다는 여러가지 패러다임을 아는 사람이 더 개방적이고 포용력이 넓다. --JuNe
          1. 비교해 본다. 몇 가지 패러다임이 나왔나(아마도 하나나 둘을 넘지 않을 것이다) 10m
  • Unicode . . . . 3 matches
         utf utf -8의 목적이 애매하네요. 원래 목적이 ascii문자만 있는 경우 사용하지 않는 첫번째 바이트를 없애기 위한게 아닙니다. 개발 과정에서 ascii 문자와 호환을 위해 그 영역을 그대로 변환이 되도록 한 것입니다. 목적 자체는 ucs 캐릭터가 2 또는 4바이트로 이루어져 있는데 이걸 스트링으로 쭉 이어놓고 보면 중간에 널(0x00)이 들어갈 수 있습니다. 예를 들어 '가'는 0xac00인데 이 널 바이트 때문에 스트링 처리가 곤란하게 됩니다. 그래서 널 바이트를 없앨 수 있는 인코딩 기법을 개발하게 된 거죠. 07/13 23:22:49 코멘트 지우기
         asc 문자 만으로 해결되는 문화권 사람들에게 utf16,32 를 도입하라고 말해봐짜 별로 먹히지도 않을 것이고.. euc 등의 인코딩에서 unicode 로 넘어가는 단계에서의 혼란을 좀 줄이기 위한 과도기적 인코딩이라고 보는게 더 의미 있지 않을까 싶군요...
  • WebGL . . . . 3 matches
         현재 객체 래핑중 중대한 문제에 봉착. 대부분의 모듈과 세이더 코드는 [콜백]으로 호출되는데 이것을 적절히 래핑할 방법이 없다. webGL과는 하등 연관이 없는 부분이라서 각자 알아서 구현하도록 해도 되지만 대부분의 경우 같은 코드를 다스 짜고 있는 나를 보게 된다. 이것을 어떻게 해야 잘한 래핑이라 할수 있을까?
          //not error
          throw Error("Can not create Buffer");
          throw Error(gl.getShaderInfoLog(shader));
  • Z&D토론/통합반대의견 . . . . 3 matches
         뭔가 충격을 주어야 하지 않을까. 모임을 생각하고 자신들의 창조적 사고를
         활발히 하면 무엇이든 새로운 것이 나오지 않을까? 그것이 선배들만의 몫은
         어차피 진정한 데블스의 모습이 없어진 상태에서 통합되어 없어지든 일년에 일주일간 남아있든 그건 그리 중요하지 않을수 있다.
  • Z&D토론/학회현황 . . . . 3 matches
         ZeroPage 의 경우는 일단 01에 관해서는 MFCStudy팀 초기 1회만 참석, 그리고 정모 미참석, 이후 아무런 언급이 없는 사람을 제하고 말한 것이므로, 그외 인원의 추가사항도 언급 부탁드립니다. 그리고 데블스의 경우도 통합시의 전체 Resource 파악이라는 면에서, 통합뒤 실질적인 운영을 주도하는 사람들 위주로 적어주시기 바랍니다.
         DeleteMe) ZeroPage 도 OB 회원님들 다 적을까요? 겹치시는 분들도 많고 (01 중에서도 또한 같은 현상). 그리고 위에서도 언급했지만, 통합시의 전체 Resource 에 대한 파악이라고 할 때, 통합 뒤의 학회를 실질적인 운영을 주도하는 사람들 위주로 적는게 낫지 않을까 생각해봅니다. (휴학, 군복무를 표시한 이유도 같은 이유입니다.) -- 석천
  • ZIM/EssentialUseCase . . . . 3 matches
          || 1. 화일 이름 & 용량을 확인한뒤 화일수신수락여부를 결정한다. || 2. 파일을 수신한다. ||
          || . || 2. 현재 열려있는 대화창의 유저를 확인하고 새 대화창을 열거나, 해당 대화창에 문자를 출력한다. ||
         예를 들면 로그인,쪽지 보내기, 문자열 송수신, 같은 경우를 Level 1
  • ZPHomePage . . . . 3 matches
          사진첩이랑 자료실은 제로페이지 회원만 접근가능합니다(가입할때 제로페이지 회원으로 가입해야되고요 제가 한번 확인해보고 권한을 드립니다)
         저같은 경우에는 모니터 해상도를 1280 * 1024로 하고 사용하는데 ZP창은 너무 작습니다. 즉 여백이 엄청나게 많습니다. 적당히 해상도에 맞추어 홈페이지를 보여주는 게 좋을 듯 합니다. --재동
         건의사항입니다. 위의 모인모인 캐릭터를 Upload:ZeroWikiLogo.bmp 로 교체하고 기본 CSS를 clean.css로 바꿨으면 합니다. 모인모인 캐릭터의 경우 00학번 강지혜선배께서 그리신 거라는데(그래서 교체하더라도 원본은 삭제하지 않는 것이 좋겠습니다.) 제로위키에 대한 표현력이 부족하다고 생각해서 제가 새로 그려봤습니다. 그리고 clean.css가 기본 바탕이 흰색이고 가장 심플한 것으로 보아 기본 CSS로 가장 적합하다고 생각합니다. -[강희경]
  • django/RetrievingObject . . . . 3 matches
         일대다 관계인 레코드의 경우는 selete_related메소드를 이용하면 데이터베이스 접근 횟수를 줄일 수 있다. 일반적인 데이터베이스 조회는 추상화되어있어 실행할 때마다 쿼리를 수행한다. 하지만 selete_related메소드를 사용하면 한 번 데이터베이스에서 결과를 가져온 후 필요할 때는 이를 그대로 사용한다. 다음 예제에서 두 방식이 어떻게 다른지 확인할 수 있다.
         사용자는 원하는 경우 extra메서드를 이용해 원하는 컬럼을 추가한 결과를 얻을 수 있다. 다음은 2006년 1월 1일 이후 보고서를 최신으로 표시하는 컬럼을 가진 리포트 정보를 가져온다.
  • html5/communicationAPI . . . . 3 matches
          * 보안을 위해 메세지를 주고받는 상대의 신원 확인 필수
          // origin 속성으로부터 송신처 확인
          // data 속성으로 수신된 메세지 확인
  • html5/offline-web-application . . . . 3 matches
          * 폴백 대상이 되는 URL은 전방일치 검색 방식으로 확인된다.
          * NETWORK 섹션에 지정된 URL은 전방일치 검색 방식으로 확인된다.
          * NETWORK 섹션에 지정한 URL이 다른 섹션 내용과 충돌할 경우 브라우저에 따라 예측하지 못하는 동작을 보일 때도 있다.
         || error ||업데이트가 에러로 종료 ||
  • woodpage/VisualC++HotKeyTip . . . . 3 matches
          *컴파일시 error나 경고에 warning에 대하여 한줄씩 이동함 또 전체 문서에서 찾기(Alt + E + I) 에서 찾은결과에 대하여도 F4로 이동
          *믿을만한 소식통에 확인해본결과 WndTabs 최신버전은 단축키가 바꼈다고하는데 먼지 모르겠다. 별수없이 지금 있는 버전(2.50)을 씀
          *WndTabs를 깔면 울트라 에디트처럼 편집창밑에 열어본 페이지들이 나온다. 근데 열어본 파일이 많을경우 머가 먼지 모르게된다.
          *그럴경우 Ctrl + Shift + O(알파벳)을 누르면 최근에 열어본 페이지들이 앞쪽으로 나오게 된다. 이것도 좀 유용함
  • 간단한C언어문제 . . . . 3 matches
         옳지않다. ss[]의 "문자"란 단어는 isdigit로 확인 할 수 없다. (확장코드이므로.) 이것을 isdigit로 확인 하려면 unsigned char형으로 선언 하면 된다. 기본 char형은 signed형이다. - [이영호]
         옳지 않다. NUM 상수가 2번 define 되었다. 이 경우 나중 define된 200으로 처리된다. - [이영호]
  • 강의실홍보 . . . . 3 matches
         적은 인력을 괜찮다. : 이벤트 행사의 경우, 홍보 효과 강의 시간대에 소수 (1~2)명이 들어가도 충분할 것 같다. 중요한 것은 이 소수가 행사의 전체 이미지를 잘 알고 있어야 한다는 점이다. 행사를 구체적으로 모를 경우에는 홍보자에게 상호보완적인 역할을 할 수 없으므로, 좋은 효율을 내기 힘들다.
          * 1학년의 경우 고등학교의 버릇으로, 쉬는시간에 많은 수가 잠을 자서, 많은 영향을 끼치지 못한다. 그리고 수업 중간에 홍보를 해서, 수업을 마치고 나서 잃어버린다.
  • 결혼과가족 . . . . 3 matches
          * 강사: 최보아(외모 출중에, 그 당시 신혼이라서 경험을 바탕으로 재밌는 강의를 할 거라는 소문을 듣고 수강), 성적이 훌륭한데 학점이 안나오는 과목이 있다. 단순 암기과목인 경우 그런 경우가 있다. 예를 들어 10명이 듣는데 3명이 절대 점수 99점이고 내가 98점이면 나는 98점이라는 우수한 점수에도 불구하고 B+이라는 점수를 받게되는 것이다. 나에게 결혼과 가족이 그런 과목이었다. 강사님과 친하게 지내고 레포트 점수도 우수했고 시험 점수도 우수했지만 B+이라는 점수를 받았다. 강사에 따라 다르겠지만 단순 학점이 목적이라면 이런 암기과목은 피해야겠다.(ex, 일본어,한자...) 나름대로 강의 내용은 흥미롭고 실생활에 유용한 내용이다. [성의과학]과 같이 들을시에는 약간의 씨너지효과도 있다. --[강희경]
          * 희경이의 의견에 전적으로 동의한다. 나 같은 경우는 출석 한번도 안 빠졌고 시험은 보통, 리포트 점수는 별로(열심히 썼다고 생각하는데 분량에 있어 착오가 있었다)였는데 C+를 받았다. 들어두면 좋은 내용이긴 하나 그렇다고 추천할 정도는 아니다. 수업도 많고 강사도 많아 어떤 것을 듣느냐에 따라 차이가 많은 것 같다. --[곽세환]
  • 권영기/채팅프로그램 . . . . 3 matches
          * 서버의 경우 listen을 하기위하여 while문으로 무한 루프를 돌고 있으므로 조인이 없어도 스레드가 중간에 죽지않습니다. 그리고 main이 return을 하여 프로세스가 종료될 경우 지식스레드도 모두 종료되므로 main 함수 실행 도중에 종료해야하는 경우 이외에는 따로 처리를 하지 않아도됩니다. - [김희성]
  • 금고/하기웅 . . . . 3 matches
         지금보니 생각할게 많네..ㅡㅡ; 금고를 떨어뜨렸을 때 깨진 경우 안깨진 경우에 따라서 다음에 할 수 있는 작업이 틀려지고..
         s(금고)가 충분하다고 했을 경우를 생각해보면...
  • 김영록/연구중/지뢰찾기 . . . . 3 matches
         static int gameover=1; //0일경우 메뉴 무한루프 끝
         void mine_confirm(int X, int Y); //지뢰가 있는지 없는지 확인
         void mine_update(int X, int Y); //지뢰가 없을경우 그근처에 지뢰수를 업뎃
  • 김희성/리눅스계정멀티채팅 . . . . 3 matches
          send(client_socket, buff_snd, strlen(buff_snd)+1,0);//접속 확인
          send(client_socket, buff_snd, strlen(buff_snd)+1,0);//접속 확인
          printf("socket error\n");
          printf("bind error\n");
          printf("listen error\n");
          printf("error : Too many clients connected");
          printf("socket error\n");
          printf("connect error\n");
          //연결 확인
  • 김희성/리눅스계정멀티채팅2차 . . . . 3 matches
          send_i(client_socket,"a");//접속 확인
          send_i(client_socket,"a");//접속 확인
          printf("socket error\n");
          printf("bind error\n");
          printf("listen error\n");
          printf("error : Too many clients connected\n");
          printf("socket error\n");
          printf("connect error\n");
          * 터미널 세로 크기가 20 이하일 경우 화면이 꼬임
  • 네이버지식in . . . . 3 matches
         가장 먼저 떠오른 건, 이용자 수였다. 이용자 수가 엄청나게 많다는 점이 지식in서비스를 활발하게 해 주었다. 이용자 수가 많아진 이유는 여러 가지가 있겠지만, 텔레비전 광고까지 낼 정도로 홍보를 해서 그렇지 않을까? 반면 위키 홍보는 몇 번인가 하고는 그 뒤로는 사람들이 알아서 쓰기를 바랬던 것으로 보인다. 알려지지 않은 서비스가 아무리 많은 장점이 있다 한들 사람들이 알아야 쓸테니까, 위키 사용이 활발하지 않은 건 일단 덜 알려져서라고 생각한다.
         다음으로는 익숙하지 않은 형식이었다. 아예 인터넷을 처음 만나는 사람이라면 익숙한 형식이 있지도 않겠다만, 많은 사람들이 글을 쓸 때는 게시판에 제목과 이름과 내용정도가 달린 게 글 형식이고, 글 제목이 목록으로 한 페이지에 나오는 형식이 익숙한 형식일 것이다. 때문에 전부 '''내용'''처럼 생긴 위키를 보고는 일단 다르게 생긱 형식에 바로 적응하지는 못할 것이다. 쓰기 어렵지는 않겠지만 말이다. 때문에 위키가 엄청난 장점을 가져서 적응하는 노력을 들이고 싶을 만 하지 않다면 굳이 사용하려 하지 않을 것이다. -[Leonardong]
         사람들은 [네이버지식in]을 마치 수학 문제 해답지처럼 여기는 것 같습니다. 저도 요즘엔 누가 궁금한 게 있다고 물어봤을 때 모르는 경우''지식in 검색해봐''라는 말을 자주 합니다. 제가 누군가에게 모르는 걸 물어봤을 때도 자주 듣습니다. ''지식in엔 없는게 없다니까''라는 말도 들어보았습니다. 마치 [네이버지식in]에는 살아가며 궁금한 것들에 대한 모든 해답이 있는 듯이 여기고 있다고 느꼈습니다. -[Leonardong]
  • 데블스캠프2004/목요일후기 . . . . 3 matches
          * 재선이가 찾아본 결과론 char str[]의 경우는 널문자를 포함하고 string은 아니기 때문이라는데 정말일까요?
          * 최종 확인 결과 VC++ 6.0 라이브러리의 버그다. VisualStudioDotNet 계열은 정상 동작을한다.
          * 학생들이 얼만큼 알아들었는지 확인하는 법을 알고 싶습니다. 단순히 문제를 풀라고 하는 것보다 좋은 방법을 찾자
  • 데블스캠프2005/RUR-PLE . . . . 3 matches
          * while문을 사용하여 중복된 씨앗의 개수가 2 이상인 임의의 개수일 경우에도 처리 가능하게 위 소스를 수정한다.
          * 아래는 간단하게 2개의 column의 경우 정렬한 모습이다.
          * 아래 그림과 같이 원래 정렬되어 있는 경우에도 제대로 작동되는지 테스트 해본다.
  • 데블스캠프2006/목요일후기 . . . . 3 matches
         API의 경우 완전 생소하기도 하고 API에 대한 기본적인 이론보다 코딩을 중심으로 가르쳐주셔서
         물론 예상외로 빠른 반응이 올 경우에 대비한 강의분량도 있어야겠지만 그렇다고 해서 느릴 경우를 예상하지 못하면 더 실패할 수 있다.
  • 데블스캠프2006/월요일/연습문제/웹서버작성/변형진 . . . . 3 matches
          * 디렉토리명으로 접근한 경우 index.html, index.htm, index.php 순서로 가져옴
          * PHP로 짜면 스크립트 언어 특성상 프로그래밍이 즐겁다고나 할까요? 그런 느낌이 좋아서 PHP를 선호하긴 하지만, UI를 제외한 코어 루틴만큼은 레퍼런스와 샘플을 함께하면 대부분의 언어로 같은 루틴을 만들 수 있을 거라고 생각해요. 그래도 어느정도는 비 웹언어에 익숙해져야 하지않을까 싶어 C++, Java, C#을 고민하다 C#을 선택해서 해봤는데, C#이 클라이언트단 어플리케이션에서도 효용성을 가지려면 Windows Vista가 출시된 후의 상황을 지켜봐야 할 것 같고, 아직은 C/C++이 더 대세인건 분명해보이네요. 사실 저같은 경우에는 아직은 연구하고 싶은 관심사가 '대용량 데이터베이스 기반 검색 엔진'과 '형태소 분석 기반 자연어 처리'로 DB와 문자열 처리에 관한 부분인데, DB 처리는 일단 RDBMS에서만큼은 PHP처럼 수월한 언어가 없고, 문자열 처리는 Perl이 다른 언어들에 비해 월등하다보니 그런 언어를 도메인 언어로 해오지 않았나 싶네요. ㅋㅋ - [변형진]
  • 데블스캠프2006/화요일/tar/김준석 . . . . 3 matches
          tar할 파일을 입력받고 그 파일이 폴더일경우 하위 파일과 디렉토리도 tar하는것
         2. untar를 할경우 풀어놓을 폴더가 없을경우 에러
  • 데블스캠프2009/금요일/SPECIALSeminar . . . . 3 matches
          * SI 업체의 경우 분석, 설계 후 Test가 다른 팀에 넘어가기도 하는 등 Feedback이 어렵다.
          * 반복문이 제대로 됐는지 체크 - 첫, 끝 index 출력, 에러 메세지 확인
          * 주어진 정보로 error의 범위를 최대한 좁혀라!!
          * 전문가에게 컨텍하라. - 특히, 외국의 경우, e-mail을 하면 80%는 답변을 해준다
  • 데블스캠프2011/다섯째날/HowToWriteCodeWell/박정근,김수경 . . . . 3 matches
          * 잘못된 선택을 할 경우에는 다시 goTo할 수 없다.
          //6층에서 up누를경우
          //8층에서 down누를경우
  • 데블스캠프2011/첫째날/개발자는무엇으로사는가 . . . . 3 matches
          * 만약 로또에 당첨된다해도 당신은 하던 개발을 멈추지 않을 자신이 있습니까?
          * 버그를 발견하고 수정하기까지 어떤 식의 발상을 했으며 잘 모르는 분야일 경우 어떻게 자료를 찾았고 그걸 어떤 방식으로 적용했는가.
          * 내가 아는 것일 때 적극적으로 도와주려 노력한다. 문제는 내가 모를 때 그에 대해 공부해보지 않는다는 점이다 (찾아보다 포기하는 경우가 많다) - [지원]
  • 데블스캠프2011/첫째날/후기 . . . . 3 matches
          * 이것저것? 하느라 앞부분을 잘라먹었네요.ㅜㅜ 생각할 만한 거리를 던져주는 좋은 말들이었습니다. 앞으로 어떻게 해야할지 생각도 해보게 됐구요.. 저는 큰일 났습니다.ㅋㅋ 일을 혼자하거나 소수로 움직이는걸 좋아해서, '남의 말대로 했는데 안되면 더 빡친다.' 맞는 말입니다. 다른 팀원의 실수를 제가 떠안아야하는 것도 있고, 제 실수를 다른 팀원이 떠안는 경우도 있습니다. 차라리 오픈소스 프로젝트는 브런치로 내맘대로 뻗어나가면 되지만, 팀 내에 갈등이 있을땐 쪼개지거나 합의를 보거나 둘 중 하나를 해야하지요. 음... 다른 팀원이 주도했다하더라도 팀의 결정은 곧 나의 결정이라고도 생각합니다. 그런 태도로 임한다면 좀 더 나은 개발자가 될 수 있지 않을까 생각해봤네요.
          * 아 맞다. '내가 면접관이라면 하고싶은 질문'도 있었지. 나는 내 질문이 마음에 들어서 나한테 한표ㅋㅋㅋㅋ 지금 당장 할수있는 무엇을 하겠다라고 답하는 사람에게 점수를 줄 생각이었음. 계획을 세워서 무엇부터 하겠다라고 하는 사람은 많겠지만(아마?) 지금 내가 할수 있는 일을 시작하는 것이 중요함을 아는 사람은 많지 않을거라고 생각해서......
  • 데블스캠프2012/셋째날/후기 . . . . 3 matches
          * [서영주] - http request를 직접 보내서 그 결과를 받아온게 인터넷 페이지의 소스보기와 같다는 부분을 보여줘서 웹에 대한 느낌을 조금 더 가깝게 느낀건 좋았습니다. 개인적으로 오픈api는 학기중에 질리도록 봐서 더이상 보고싶지가 않을 정도였지만. -_-
          * [안혁준] - 어려운 주제들이었지만 말주변이 좋아서 지루하지는 않았네요. C에서의 block같은경우에는 활용도도 높은것 같구요. 아직 표준이 아니라서 실제 겪을때까지는 많은 고난과 역경이 존재할것 같은 느낌이네요.
          * [김태진] - 현이형다운 주제였습니다. LLVM의 경우, 작년에 현이형 옆에서 공부하다가 GCC네 뭐네 물어보다 들은 기억이 나네요. 좀 더 정리되어 정말 좋았습니다. 역시 현이형이 많은걸 알고 있네요. 작년 학기초부터 현이형한테 배운게 많아(특히 APPLE관련) 도움을 많이 받았더니 항상 감사하다는 말을 전하고 싶네요.
  • 루프는0부터? . . . . 3 matches
         보통 비대칭형 범위는 대칭형 범위보다 더 사용하기 쉽습니다. 왜냐하면 다음과 같은 중요한 속성이 있기 때문입니다. [m, n)과 같은 형식의 범위는 n-m개의 요소들을 가지며 [m,n]의 형식은 n-m+1의 요소들을 가집니다. 따라서 [0, rows)에서 요소들의 개수는 직관적인데 반해, [1, rows]에서 요소들의 개수는 덜 직관적 입니다. 이러한 속성차이는, 특히 빈 범위의 경우에 더 뚜렷합니다. 만약 비 대칭형 범위를 사용한다면, 빈 범위를 [m,n)으로 표현할수 있지만, 대칭형 범위에서는 [n, n-1]을 사용해야 합니다. 범위의 끝이 시작보다 더 작을수 있따는 가능성은 프로그램 설계시 끝이 정의되지 않아 버리는 문제를 야기 시킬수 있습니다.
         지금까지 r개의 행을 출력했따고 표현할 수 있기 때문입니다. 만약 1부터 번호를 매긴다면? 이제막 r번째 행을 출력하려는 찰나라고 정의할 수도 있겠지만, 그러한 구문은 불변식으로 정당치 않습니다. 왜냐하면, while이 조건식을 마지막으로 검사할때, rows+1이 되기 때문입니다. 이때 우리가 원하는 것은 rows행만을 출력하는 것 입니다. 따라서 우리는 r번째 행을 막 출력 하려던 것이 아닌 셈이 됩니다. 지금까지 r-1개의 행들을 출력했다고 불변식을 정의할 수도 있을 것입니다. 하지만 불변식을 그런식으로 정의 햇다면, r을 0부터 시작시켜 단순화 시키는 것이 더 낫지 않을까요?
         조건식이 r!=rows라면, 루프가 끝날 때 r==rows라는 사실을 알수 있습니다. 불변식은 r개의 행을 출력했따는 사실을 말해 주기 때문에, 정확히 rows개의 행을 출력했다는 것을 알 수 있습니다. 한편, 만약 조건식이 <=rows라면, 그로부터 알 수 있는 사실은 최소한 rows개의 행을 출력했다는 사실 뿐입니다. 따라서 그 이상을 출력했을 수도 있는 것입니다. 0부터 번호를 매기게 되면 정확히 rows번의 반복을 수행했는지 확실히 하고자 할 때, R!=rows를 조건식으로 사용할 수 있습니다. 또한, 반복횟수가 rows번 또는 그 이상이 되기만을 원한다면, r<rows를 사용할 수 있습니다. 만약 1부터 번호를 매기다면 최소 rows번의 반복만을 원할때 r<=rows를 사용할 수 있습니다. 하지만, rows가 정확한 숫자가 되도록 하려면 어떻게 해야 할까요? 그런 경우에는 좀더 복잡한 조건식인 r==rows+1과 같은 방법을 사용 할수 있습니다. 하지만 이렇게 복잡하게 해서 얻을수 있는 이득은 거의 없습니다.
  • 몸짱프로젝트/CrossReference . . . . 3 matches
         ch = fin.get();// 알파벳이 아닌 문자일 경우
         //ofstream fout("result.txt", ios::app); // result.txt 라는 파일에 출력하는 경우
         if ((*node) == NULL){// 빈 노드일 경우
  • 문서구조조정 . . . . 3 matches
         위키는 ["DocumentMode"] 를 지향한다. 해당 페이지의 ["ThreadMode"]의 토론이 길어지거나, 이미 그 토론의 역할이 끝났을 경우, 페이지가 너무 길어진 경우, 페이지하나에 여러가지 주제들이 길게 늘여져있는 경우에는 문서구조조정이 필요한 때이다.
  • 문제풀이/1회 . . . . 3 matches
         책에서 숫자를 가지고 장난 친경우는 없는것 같아서...
         Equivalent to eval(raw_input(prompt)). Warning: This function is not safe from user errors! It expects a valid Python expression as input; if the input is not syntactically valid, a SyntaxError will be raised. Other exceptions may be raised if there is an error during evaluation. (On the other hand, sometimes this is exactly what you need when writing a quick script for expert use.)
          이런 경우를 개선하기 위해서 map 함수가 있는것입니다. 이를 Haskell에서 차용해와 문법에 내장시키고 있는 것이 List Comprehension 이고 차후 [http://www.python.org/peps/pep-0289.html Genrator Expression]으로 확장될 예정입니다. 그리고 print 와 ,혼용은 그리 추천하지 않습니다. print를 여러번 호출하는것과 동일한 효과라서, 좋은 컴퓨터에서도 눈에 뜨일만큼 처리 속도가 늦습니다. --NeoCoin
  • 문제풀이게시판 . . . . 3 matches
          * 문제를 풀다가 장애를 만나거나 혹은 뭘 어떻게 해야할지 막막할 경우 "문제풀이도우미"를 찾아서 함께 PP할 수 있다.
         사실 도우미가 누구냐는 것은 크게 중요하지 않을 수도 있다. 문제 해결의 난관에 부딪힌 사람끼리 PP를 해도 분명 큰 도움을 얻을 것이다. 도우미로 나섰지만 실제로는 스스로에게 도움이 더 된 경우도 있을 것이다(전문가일수록 더욱. see also ["전문가의명암"]). 그런 이유로 문제풀이도우미는 저학년부터 고학년까지 누구나 가능하다.
  • 바퀴벌레에게생명을 . . . . 3 matches
         스페이스바를 누르면 tile배열의 모든 frequency가 0이되고 처음 밟은 타일의 갯수(numberOfVirginTile)가 총 타일의 숫자와 같아진다. 바퀴벌레가 타일을 밟을 때마다 그 타일의 frequency는 늘어나고, frequency가 0인 타일을 밟았을 경우 numberOfVirginTile은 줄어든다.
         타이머의 주기마다 바퀴벌레는 움직이고 그 움직임과 각 타일의 빈도수를 뷰에 그려준다. 종료조건은 스페이스바의 키이벤트와 모든 타일을 적어도 한번씩 밟았을 경우(numberOfVirginTile == 0)이다.
         방향키로 먼저 시작점을 택한다. 시작점을 택한 후 스페이스바를 눌러 랜덤워크를 진행한다. 정지를 원할 경우 스페이스바를 다시 누른다.
  • 반복문자열/김대순 . . . . 3 matches
         '''++'''을 쓰는 경우 조심할 필요가 있습니다. 지금은 함수에 값에 의해 전달을 하기 때문에 아무 문제가 없어 보입니다. 하지만 다음과 같은 경우는 어떨까요? -- [Leonardong]
         re-지적을 해 주셔서 감사합니다. 주소값으로 넘길때 int형 주소에 +1을 하게될 경우 4바이트를 건너뛴 주소의 값을 출력하기 때문에 원하는 결과가 나오지 않지요..^^;-대순-
  • 새싹C스터디2005/pointer . . . . 3 matches
         포인터를 쓰지 않을 경우와 비교하면 이해가 쉽다.
         음... swap 함수에서 값이 정수(배열, 포인터 주소를 제외한 모든 값.)일 경우 xor 치환으로 간단하게 변경 가능합니다.
  • 새싹교실/2011/學高 . . . . 3 matches
          * 학생들이 보충수업을 요청해올 경우 보충수업 또한 진행합니다.
          * [윤종하]: 수업 준비가 미흡해서 제대로 진행못했고, 실습으로 준비한게 수준이 좀 높았다. 김준호 학생의 경우 visual studio 설치와 Wi-Fi가 안 됨을 계속 불만사항으로 지적했으며 수업태도가 상당히 불량했습니다.
          * [윤종하]: 김준호를 제대로 지도하지 못해서 진도가 덜 나가서 약간 좀 진도나가기가 힘들었다. 김준호에 대한 개별 보충학습을 수행하거나 혼자서 공부를 해오도록 유도하겠다. 세영이 같은 경우는 집이 멀어서 공부를 하기가 힘들다고 했다. 따라서 중간 고사 이후에는 시간을 확실히 조정하도록 하겠다. '''더 이상의 참가는 불허할 방침'''
  • 새싹교실/2011/무전취식/레벨10 . . . . 3 matches
          //그리고 좌우대칭을 확인??
          * ㅋㅋㅋ오늘도 일등입니당*_* 위키올라오기전에 미리 확인한 건 처음이에요. 과제하다가 들어와서 써용. 오늘 코딩해본 1, 2번은 다했습니다. 스스로 생각해보고 스스로 코딩해보는게 중요한 것 같아욧!! 문제를 보고 어떻게 해결할까 고민하는 과정이 실력을 키우는 것 같네용... 여태까진 다른사람 생각을 그대로 옮기는 코딩을 했다면 이제부터는 제 스스로 생각해보고 코딩을 해야겠어요히히*-_-* 하하핫 이제 3번을..... - [이소라]
         // 만약 first seat이 다 찼을경우 질문 스캔
  • 새싹교실/2012/ABC반 . . . . 3 matches
         함수의 선언은 그 함수를 호출하는 코드보다 위에 있어야 한다. 그렇기 때문에 위처럼 함수의 선언만 해놓고 실제 구현은 아래에다가 해놓는 경우가 많다.
         같은 이름으로 지역변수와 전역변수가 있을경우 지역변수를 우선으로 한다.
         이럴경우 전역변수보다 지역변수를 우선시 하여 6+3이 아닌 2+3을 하게 된다.
  • 새싹교실/2012/AClass/1회차 . . . . 3 matches
         성적 계산기의 경우 90점이상 A, 80점이상 B와 같은 구조입니다. 100점만점을 10으로 나누면 switch문으로 풀 수 있습니다.
         -성적 계산기의 경우 90점이상 A, 80점이상 B와 같은 구조입니다. 100점만점을 10으로 나누면 switch문으로 풀 수 있습니다.
          성적 계산기의 경우 90점이상 A, 80점이상 B와 같은 구조입니다. 100점만점을 10으로 나누면 switch문으로 풀 수 있습니다.
  • 새싹교실/2012/열반/120319 . . . . 3 matches
          * C언어에는 boolean 타입이 없습니다. 보통 int로 참과 거짓을 표현하고, 모든 비트가 0일 경우에만 거짓이고, 그 외는 참입니다.
          // 조건문이 맞을 경우 명령1을 실행합니다.
          * [정진경] : 리눅스 터미널 환경에서 진행했는데, 컴파일 하는 과정이나 편집하는 과정의 설명은 생략했습니다. 검은 화면에 흰 문자열이 큰 거부감을 일으키는 것 같지는 않습니다. 아무래도 준비가 빈약하다보니 뭘 가르쳐야 할지 모르겠습니다. 일단 상세한 문법이나 C 표준에 대한 설명은 뒤로 미루는 것이 좋을 것 같고, 일정 수준 이상의 프로그래밍을 스스로 할 수 있을 정도로 실력을 끌어올리는 것에 집중해보려 합니다. 또한 중간중간에 코드를 작성한 것에 대한 출력을 물어보면서 알고 있는지 확인하는 과정이 중요한 것 같습니다.
  • 새싹교실/2012/우리반 . . . . 3 matches
          3.다음 프로그램이 무엇을 출력하는지 생각해보고, 프로그램을 그대로 짜서 뭐가 나오는지 확인해봅시다.
          * 컴퓨터로 해도 되고, 글로써도 상관없어요. 컴퓨터로 하는 경우 jereneal20@네이버.com으로 메일 보내줘요.
         }}} 스위치를 이용한 키 확인
  • 새싹교실/2012/절반/중간고사전 . . . . 3 matches
          * 원래 설명을 좀 길게 하는 스타일인데 이번 년도엔 스타일을 조금 바꿔봤습니다. 지지난주 월요일에 OT 겸 만났을때 실습 위주로 가는 게 좋다는 의견이 있었고, 미리 공부해 본 부분이 있다는 말에 실습 과제만 준비해왔어요. 인원도 두명밖에 안되니 코딩하는 부분을 보고 보충해서 설명할 부분을 보충해서 설명하는 게 좋겠다고 생각했는데 교수님 커리큘럼과 제가 가르치고 싶은 순서가 안 맞는 문제도 있고해서 다음 시간부터는 간단하게라도 설명을 하고 실습을 진행해야 하지 않을까 싶은 생각이 듭니다. 장소도 칠판이 있는 곳으로 가야겠어요. 그런데 2시라 4피 쓸 수 있을까 걱정은 좀 되네요. 4피, 5피 중 하나는 쓸 수 있길 바랍니다.
          * 혹시 학교 진도를 못 따라잡고 있지 않을까 걱정스러웠는데 그렇진 않더라구요. 이번해엔 진도가 좀 느린가봐요?? 사실 어떻게 진행되는지 감이 하나도 안와서 청강해보고 싶어요.
          * 가위바위보의 경우를 나눠서 설정하는 것
  • 새회원을받으면 . . . . 3 matches
          * 열심히 하지 않을 사람은 안 받는게 좋을껄 --[인수]
          * 왜냐면, 열심히 하는 사람과 열심히 하지 않을 사람이 같이 섞여 있으면 서로 피곤하기 때문이지. 유유상종을 잊지 말게나! --[zennith]
          - [http://netory.org 네토리]처럼 정기적(또는 비정기적)인 무언가가 있었으면 좋겠습니다. 굳이 그것이 모임의 형태가 아니더라도 ''새내기들이 자신이 제로페이지에 지원하였다는 사실을 잊어버리지 않게''해 주는게 필요하지 않을까요? 예를 들면, 숙제를 내준다던지, ProgrammingParty 같은 것들이요. - [임인택]
  • 송년회 . . . . 3 matches
         학기 마무리행사로 학교전체가 들썩일텐데, 예약이 필요하지 않을까요?? - [이승한]
         이메일을 잘 확인안하는 사람도 많은데... 문자나 전화가 젤 좋지않을까요?
  • 수학의정석 . . . . 3 matches
          출체되는 위치는 수학의 정석(공통, 수1, 수2) 6차 교육과정이며, 이 경우 7차 교육과정에서 배운 사람들이 풀지 못하는 문제도 나온다. (1차변환,복소수, 등)
         P.S : 출제자가 GCC만을 사용하는 관계로 그래프등의 문제는 나오지 않을것이다.
          경우에 따라서는 아주 어려운 문제가 나올 수 있다. 이것은 출제자가 놀리는 것이 아니라 출제자 또한 그 문제를 어렵게 생각한다는 것을 뜻한다.
  • 스터디제안 . . . . 3 matches
         잡지 정리 스터디 같은 경우에는 정모때 정리한걸 간단히 발표 해도 상당히 좋을거 같습니다. 특정한 분야가 아니라 모든 회원들이 들어도 될만한 내용일 테니 회원들에게도 도움이 되고 정모의 입지도 높일 수 있을거 같습니다. - 상협
         많은 경우, 특정 주제에 대한 스터디를 만들 때에는 가능하면 독립적인 아이덴티티를 드러내는 이름을 짓기보다, 그냥 공부하는 구체적 주제로 이름을 짓는 것이 나은 것 같습니다(반대로 특별한 이름을 짓는 것이 주는 장점도 많습니다). 어차피 스터디 그룹은 한시적인 것이고, 공부하자고 모인 것이지 어떤 조직을 만들자고 모인 것은 아니며, 해당 그룹이 공부한 내용은 이런 위키에 축적이 될 것이므로. 그룹의 공동체적 성격이 초점이 되고, 공부보다 "관계"가 중심에 놓이는 경우가 있는데, 이는 공부하는 사람들이 피해야할 것입니다. 같은 주제를 공부하고 싶은 사람들끼리 모여서 정말 열심히, 성실히 공부한 다음, 그 자료를 위키에 남기고, 다음을 기약하며 소리없이 해산하면 그만인 것이죠. 이 때의 또 다른 장점은, 다음에 그 주제를 공부하는 다른 스터디 그룹이 있을 때 이전에 스터디를 했던 사람들의 작업에 접근할 확률이 더욱 높아진다는 것이죠. 관계중심적인 공동체를 이루면 장점도 많지만, 외부에서 절연될 확률이 높아진다는 단점도 있는 것 같습니다.
  • 여섯색깔모자 . . . . 3 matches
         평소에 의견을 교환 하다가 보면 어느새 자신의 자존심을 지키려는 논쟁 으로 변하게 되는 경우가 많다. 이 논쟁이란게 시간은 시간대로 잡아 먹고, 각자에게 한가지 생각에만 편향되게 하고(자신이 주장하는 의견), 그 편향된 생각을 뒷받침 하고자 하는 생각들만 하게 만드는 아주 좋지 못한 결과에 이르게 되는 경우가 많다. 시간은 시간대로 엄청 잡아 먹고... 이에 대해서 여섯 색깔 모자의 방법은 굉장히 괜찮을거 같다. 나중에 함 써먹어 봐야 겠다. 인상 깊은 부분은 회의를 통해서 지도를 만들어 나간후 나중에 선택한다는 내용이다. 보통 회의가 흐르기 쉬운 방향은 각자 주장을 하고 그에 뒷받침 되는것을 말하는 식인데, 이것보다 회의를 통해서 같이 머리를 맞대서 지도를 만든후 나중에 그 지도를 보고 같이 올바른 길로 가는 이책의 방식이 여러사람의 지혜를 모을수 있는 더 좋은 방법이라고 생각한다. 이 책도 PowerReading 처럼 잘 활용 해보느냐 해보지 않느냐에 따라서 엄청난 가치를 자신에게 줄 수 도 있고, 아무런 가치도 주지 않을 수 있다고 생각한다. - [상협]
  • 열린제로페이지 . . . . 3 matches
         이 생각에 반대 의견이 무척 거세리라고 생각되지만 정보 공유의 진입 장벽이 될 뿐인 '''제로페이지의 명확한 회원 구분은 불필요하다'''는 주장을 해봅니다. 앞선 네개의 가상 시나리오 중 1-1, 2-1번 시나리오는 실화를 바탕으로 작성했습니다. 1-2, 2-2번 시나리오는 주관적이며 희망적인 방향으로 서술했습니다. 현재의 제로페이지는 연초에 모은 사람들 중 꾸준히 학술적 활동을 하는 사람들만이 제로페이지 회원이 될 수 있는 폐쇄적인 학회입니다. ["열린제로페이지"]로 방향을 잡는다면 학회에서 교류되는 정보의 질과 양을 높일수 있지 않을까요.
         예전에..아주 예전에..당나귀와 당근이론(-.-)을 설명하던 때에 잠시 언급했던 제 의견과 유사한 의미의 내용이었기에 도움이 될까해서 당시 있었던 이야기를 한번 적어 봅니다.(어쩌면 회의록에 있을까요?) 그 때, ZeroPage회원 관리를 인력 풀 형식으로 하자는 의견을 냈었습니다. 자신이 같이 공부할 혹은 같이 프로젝트를 진행할 사람이 필요하면 학회에 그런 선전을 하고 그렇게 마음이 맡는 사람들끼리 단위 작업을 수행하는 식으로 학회를 꾸렸으면 좋겠다고 했었습니다. 하지만, 그 때 제기된 문제점은 그러한 방식은 조직의 결속력을 화해시킬 우려가 있지 않을까 하는 점이였습니다. 자신이 필요할 때는 학회를 찾다가 학회에서 자신에게 이익이 되지 않는 일을 할때는, 가령 전시회 준비를 한다거나 , 나 몰라라는 식이 될 수도 있다는 점이 문제점이였던 것 같습니다. 이런 일이 반복되게 되면 회원들 간의 유대관계가 느슨해질거라는 우려를 해결한 방안이 없었기에 더 이상의 의견을 주장하지 못하였습니다.
         적극성이면 무엇이든 된다는, 이런 경우도 있습니다. 저희 고등학교 졸업때, 폐쇄적인 천체 관측 동아리의 회장은, 2학년때(1학년이 아닌) 중간에 그냥 끼어서 회장이 된 케이스가 있었구요. 좀 특별한 케이스죠. 저도 1학년때 축구하고 싶어서 어느날 무작정, 일요일 아침에 축구하는 동호회에서 껴서 한적이 있었지만(지금이야 그만 뒀지만 --;).. 대체 zp가 어떻게 해야 할까요? [[BR]]
  • 위키를새로시작하자 . . . . 3 matches
          성사 된다면, 현 위키 데이터는 읽기 전용으로만 접근 가능하도록 할 생각입니다. 경우에 따라서는 삭제 할수도 있을것 같습니다. --NeoCoin
          상용 서비스가 아니기에 언제든지 합의만 이끌어 낸다면 가능하지요. 다만 이런 생각을 하기가 힘든것 같습니다. 이러한 시도는 Open Source 나, 상용 프로젝트에서 일정 버전 이후에 완전 새로 작성하는것에 비견하지 않을까요? --NeoCoin
         새로 만든 위키를 보니 지금 위키와 아무 차이가 없어 보입니다. 이런 식으로 나가면 똑같은 위키를 만드는 수고를 하지 않을까 우려됩니다. 왜 새로 시작합니까? 여러분의 대답은 무엇입니까? --JuNe
  • 이기적인유전자 . . . . 3 matches
          * 본 감상 : 이 책에서 강조하는 것이 유전자는 끊임없이 자신의 복제자를 널리 퍼뜨리려고 하는 성질이 있다는 것이다. 그래서 생명체는 유전자의 목적 달성을 위해서 움직이는 하나의 기계라고 가정한다. 이에 사람도 포함된다. 유전자는 끊임없이 자신의 복제자를 널리 퍼뜨리려고 한다. 그래서 이기적으로 행동하게 된다. 자신의 복제자를 퍼뜨리기 위해서 생존 확률이 더 높아야 하고, 더 잘 생존하려면 이기적으로 되어야 하기 때문이다. 이에 맞추어서 사람을 보면 맞는 부분이 상당히 많다. 사람은 자신의 자손이 후세까지 널리 번영하기를 바라고, 옛날에 가장 큰벌중 하나가 삼대를 멸하는 벌이라는 점을 보아도 이를 확인할 수 있다. 따라서 사람의 본성도 이기적이라고 보는 것이다. 그런데 재밌는 점은 이책의 '마음씨 좋은 놈이 일등한다. ' 라는 부분에서의 글이다. 이 부분에서는 각각 마음씨 좋은파, 배신파, 보복파 등등이 나오고 이 각 파들이 행동할 경우에서 각 파들이 어떻게 흥성하는가 또는 소멸해 가는지가 나와 있다. 이 부분에서는 결국 배신파 와같은 행동을 하는 유전자는 널리 퍼질 수 없음이 증명되었고, 보복파나, 2번 배신당할 경우에만 보복하는 파등이 어떻게 마음씨 나쁜 배신파 보다 유리한지등이 나와 있다. 이 부분을 보고 사람들이 호혜적인 행동을 하거나 이타적인 행동을 하는점에 대한 하나의 이유가 될 수 있거나, 그러한 행동을 하는 유전자가 지금까지 살아남고 널리 퍼질 수 있었던 이유도 알 수 있었다. 즉 이타적인 행동이나 호혜적인 행동을 하는 이유와 그러한 행동이 필요하다는 점등을 알 수 있었다.
  • 이연주/공부방 . . . . 3 matches
          * 잡다한 궁금증 : %d 랑 %2d 차이는 눈으로 확인했습니다만 왜 이렇게 되는거에요?
          -뭔가 도움이 안될지도 모르지만;; %d는 그냥 변수에 저장되 있는 숫자의 자릿수를 그대로 받아서 출력하지만 %숫자d 같은경우는 안의 숫자만큼의 공간을 우선확보하고 변수안의 수를 읽어드리기 때문으로 알고있심 =0=;; 변수의 자리수가 안의 숫자를 오버해 버릴때의 문제는 나도 모르지만;; %.2f 같은경우는 소수점을 2자리까지만 표시를 하는게지 -_-!!! -[정수민]
  • 정모/2004.5.7 . . . . 3 matches
          - JSP스터디 같은경우 모임이 있었다.
          프로젝트의 활성화 정도 : JSP같은 경우 교재만 정한 상태
          - 설명양이 너무 많고, 작년같은 경우 지루 했다는 의견이 있어서 기본적인 것들을 알려주고,
  • 정모/2005.2.2 . . . . 3 matches
          --> 올해 4월에 만약 여자 회원이 있을 경우에 일정을 잡는다. 만약 남자회원들만 남아 있을 경우 일정 취소.
         검은 모자를 쓰고 이야기해보겠습니다. 시작이 30분 늦어서 제시간에 온 사람은 기다렸습니다. 반대의 반대가 나와서 한 주제에 대한 이야기가 길어지기도 했습니다. 토론 주제가 암시적으로 바뀌어서 무엇을 이야기하고 있는지 모를 경우도 있습니다. ''위키에서 좀더 이야기하자''는 이야기는 정모에서 할 일을 미루기라고 봅니다.
  • 정모/2011.3.14 . . . . 3 matches
          * 학생들 간의 이해도나 선행 지식이 차이나는 경우 혹은 시간이 안 맞는 경우 모두 트레이드가 가능.
          * 그런데 PNA 다시 돌아오지 않을지도 모른다고 합니다.... 슬프다... 또 했으면 좋겠는데ㅜㅜㅜ - [김수경]
  • 정모/2011.3.28 . . . . 3 matches
          * 새싹 돌아보기 도중 나왔던 윤종하 게임 세미나! 정확히 언제 하실지 궁금해졌습니다 ㅋㅋ 다음 주 부터 ZP에 관심 있는 새내기들도 참여한다던데, 이제 ICE BRAKING의 진가를 발휘할 때가 오지 않았나 싶습니다. 다른 사람들도 모두 알 수 있는 용어들로 채워졌으면 합니다. OMS에서 처음과 두번째 동영상은 TV 광고에서도 많이 봤던 류였지만, 세번째의 사람 전체 행동을 인식해서 컨트롤러 없이도 게임을 즐길 수 있는 것과 네번째 동영상에서 컨트롤러를 활용해 화이트보드에 글씨를 쓰거나 3D 형태로 보이게 하는 것이 신기했습니다. 특히, 로봇같은 경우는 오른쪽으로 가라고 하는 손가락질을 인식해서 이동하는게..정말 능력자가 많은 듯 싶습니다. 책 읽기 모임은 원래 격주로 하는데 시험이 3주밖에 안남아 다음주에 진행하고, 중간고사가 끝날 때까지 쉴까 고민중입니다. 어느 새 3월이 다 갔네요! 시간 참 빠르군요 ㅠㅠ - [강소현]
          * 시작하기 전에 다들 모여 앉을 수 있도록 앞으로 나와달라고 했어야하는데 깜빡했네요. 그래서인지 이번 정모는 약간 산만한 느낌이 들었습니다. 이번 OMS는 게임 컨트롤러에 대한 내용이었는데 굉장히 흥미로웠습니다. Wii 나왔을때도 신기하다 대단하다 싶었는데 이제 뭐 들고 있을 필요도 없다니… 기술 발전이 참 놀라워요. 느리지 않을까 생각했는데 별로 느리지도 않은 것 같고 말이죠. 요새 플래시 보드(타는)게임을 자꾸 하는데 키넥트를 이용한 보드(타는)게임 해보고싶네요. 아파트에 살면서 그런거 하면 쫓겨나겠지만 난 아파트에 사는 게 아니니까;; 3월 회고를 진행했는데 OMS는 한결같이 호응이 좋습니다. 다시 시작하길 잘했네요~ 발표하는 사람에게도 듣는 사람에게도 즐거운 시간인 것 같아요. 그런데 다음주 OMS도 과연 그럴지………… 위키의 활성화도 긍정적인 반응이 많아 기뻤습니다. 안 쓰던 위키라 다들 불편하게 느끼시지 않을까했는데 역시 쓰다보면 또 익숙해지는 거니까요ㅎㅎ - [김수경]
  • 정모/2011.3.7 . . . . 3 matches
          * 이번 정모에서 루비 세미나 - 문법실습 - 을 준비했었습니다. 잘 할수 있을까 걱정했는데 예상대로 설명도 제대로 못하고 강사주제에 들으러 오신분들께 물어보고 시간도 두배나 초과하는 추태를 보였습니다. 혼자서는 다 아는것 같은 내용도 남들 앞에서 설명하려니 제대로 떠오르지가 않네요.. 앞에서 말하면서도 얼른 끝내고 도망가고싶다는 생각이 자꾸 들었습니다ㅠ 이래서 연습이란게 중요한가 봅니다. 다른사람을 가르치려면 가르칠 사람보다 세배네배 더 공부해야 한다는 말을 뼈저리게 새기는 하루였습니다. 혹여 또 세미나를 한다면 벽보고 연습이라도 하겠습니다. 그때는 이런 괴로운 세미나를 들려드리지 않을게요ㅠㅠ - [서지혜]
          * 활동보고에서 책읽기 모임 보고를 하면서 간만에 정말 정식활동 시작!! 한번쯤 해보고 싶었던 루비 프로그래밍 실습도 하면서 알찬 정모가 되지 않았나 느꼈습니다. 아쉬웠던 점은 시간 안배인데, 정모의 시간에 대한 제한은 없으나 어느 정도 deadline은 잡아야 하지 않나 하는 생각이 들었습니다. (예를 들면 늦어도 9시까지는 끝낸다 라던가..) 책읽기모임 활동보고의 소요시간이 약간 길었는데, 각자 읽은 책에 대해서 정모에서 나누는 것이 가장 효과적이긴 하나 모임 때 나눴던 얘기의 단순 요약판이니 이제부터는 위키를 참조하는 것도 좋지 않을까 싶네요. 그리고 루비 코드 레이스는 참여자를 봐서 다음주 정모 때 하는게 어떨까요 - [송지원]
          * 학생회 회의 떄문에 늦어서 루비 세미나 뒷부분부터 참석한 관계로 많은 프로그램을 놓쳐버렸습니다 OTL 아쉽더군요... 우선 새싹의 경우는 나름 담당자 인데 정모에 참여를 못해서 아쉽습니다. 그리고 성현이형의 영화 해석을 보면서 깨달은건데 그렇게 영화가 해석되는지 몰랐습니다. 그리고 JavaScript 스터디에 야매로 참가하면서... 알게된 내용이지만 인터프리터 언어에도 객체지향 언어가 존재하고 종류가 꽤 많다는게 신기하네요. 제가 어디서 주워 듣기로는 Python도 OOP가 가능하다고 하던데;; 아무튼 늦게 들어간게 죄입니다 ㅠ -[윤종하]
  • 정모/2011.4.11 . . . . 3 matches
          * 앗 비… 비 생각은 못 했네요. 비오면 어쩌지ㅜㅜ 확인해볼게요……………… 확인 결과 안 온다고 합니다!! 야호!! - [김수경]
          * 이번 정모에는 11학번 학우분들이 참여하여 반가웠습니다. Ice Breaking때는 화기애애한 분위기가 마음에 들었습니다. 다들 웃으면서 ㅎㅎ 재미있는 시간이었던 것 같습니다. 일일 퍼실리테이터... 어떤 느낌일지는 모르겠지만 한번 해 보는 것도 재밌지 않을까라는 생각도 했습니다. 이번 OMS를 진행하면서.. 음... 역시 배경이 문제였었던 같습니다 -ㅅ-;; 그리고 생각했던거 보다 머리속에 있는 말이 입 밖으로 잘 나오지를 않아가지고 제가 생각했던 것들을 모두 전달하지 못했던 것 같습니다. 사실 음악을 좋아하다 보니까 영화나 TV를 보다가 아는 음악이 나오면 혼자 반가워 하고 그랬는데,, 그 안에 있는 의미를 찾아보는 일은 많이 하지 않았었습니다. 다만, 이런걸 해 보겠다고 생각했던게 아이언맨 2 보다가 (보여드렸던 장면에서) 처음에는 Queen의 You're my Best Friend라는 노래로 생각하고 저 장면과 되게 모순이다라고 생각했었는데 그 노래가 아니라 다른 노래라 조금 당황했던 것도 있고, 노래 가사를 보면서 아 이런 의미가 있을 수도 있겠구나 라는 생각을 했습니다. 그래서 이것 저것 찾아보게 되었던 것이 계기가 되었던 것 같습니다. 그리고 이번 스피드 퀴즈는 그동한 제로페이지에서 했던 것들이 많았구나 라는 생각과 함께, 제가 설명하는데 윤종하 게임이 나올줄이야 이러면서 -ㅅ-;; ㅋㅋㅋ 마지막으로 다음주 소풍 기대되네요 ㅋ - [권순의]
  • 정모/2012.12.10 . . . . 3 matches
          * 홈페이지에서 투표합니다. 수시로 확인해 주세요.
          * 튜터링이라 적어두긴 했지만 연속 세미나 혹은 소그룹 과외 혹은 새싹 스터디 비슷한 느낌이 되지 않을까 생각되네요.
          * [김태진] - 드디어 올해 마지막 정모까지 끝냈습니다.. 2012년에 수많은 정모를 했네요 - 이제 제가 할 정모가 2~3번 남았다고 생각하니 참 새삼스럽군요. 엔젤스캠프에서 뭘할지는 계속 생각중에 있습니다. 의정이형이 추천해주는 것도 있고 등등. 오늘 왔던 와락이라는데는 뭐, 경우에 따라서 받는거 없이 열라 고생해야할 수도 있고 별로 하는거 없이 많은걸 챙길수도 있는(?) 기회겠지요. 잘 판단해보면 좋겠어요.
  • 정모/2012.4.30 . . . . 3 matches
          wibro는 WiMAX 프로토콜을 이용한 상표명입니다. wibro의 경우 IEEE 802.16e 표준을
          3G의 경우는 CS(circuit switched)망과 PS(packet switched)망을 이용하는데 통화에는
          CS망, 인터넷 사용에는 PS망을 사용합니다. 반면에 LTE의 경우는 인터넷 사용시에
  • 정모/2012.8.8 . . . . 3 matches
          * 다음주(수목금?)쯤이 적당하지 않을까 싶네요.
         E-Book의 경우, ZP명의로 구입하고, pdf파일은 모두 공유가능..
         장학금에 대해 소득공제로 문제가 있을경우 연말에 정산
  • 정모/2013.1.8 . . . . 3 matches
          * 회장은 선거일로 5일 이전 공고된 정모에서 정회원 출석 인원 과반의 득표로 당선되며 부득이한 경우 5일 이상 진행된 인터넷 투표에서 정회원 재적 인원 과반의 참여와 참여 인원 과반의 득표로 당선됩니다.
          * 인터넷 투표는 정모 선거의 대체이므로 휴면 중인 정회원은 인터넷 투표에 참여할 경우 정모 출석에 준하여 권한을 행사하는 것으로 인정할 수도 있을 것 같습니다.
          * 현재 졸업자, 졸업예정자 여부와 무관하게, 회장에게 활동 중단 후 1년 이내에 은퇴 의사를 표시하여 "은퇴 처리"되거나, 탈퇴 의사를 표시하여 "탈퇴 처리"되거나, 1년 이상 활동하지 않아 정모에서 "제명 처리"되거나, 회장이 정한 자격과 요건에 미치지 않아 준회원으로 "강등 처리"된 경우 선거권과 피선거권이 상실됩니다.
  • 정모/2013.6.10 . . . . 3 matches
          * 스터디나 프로젝트를 하는 경우에는 ZP에서 기자재, 도서 등은 우선적으로 지원하고, 다른 비용도 나름대로 지원하니 신청해 주세요.
          관리하는 사람들이 체계적으로 한다고 한 들, 비는 시간은 분명히 존재합니다. ZP의 다른 회원들이 가끔씩은 확인해 주었으면 합니다.
          * 방학 막바지 쯤에 하지 않을 까 싶습니다.
  • 조영준/파스칼삼각형/이전버전 . . . . 3 matches
          // 빈 공간의 수가 홀수일 경우 그 반을 출력
          //삼각형의 머리일 경우
          // 빈 공간의 수가 홀수일 경우 그 반을 출력
  • 중앙도서관 . . . . 3 matches
         물론 현재도 저학년, 고학년이 함께 일하는 경우는 있다. 고학년이 예비역인 경우가 그렇다. 하지만 대부분의 경우, 저학년끼리, 고학년끼리 뭉치거나, 서로 섞인다고 해도 고학년은 방외자요, 관찰자로 남는다. 보다 명시적이고 적극적으로 저학년, 고학년 공동 학습을 장려할 필요가 있다. 우리는 교과과정이나 교육방법에 대한 스테레오타입에서 벗어나야 한다.
  • 지금그때2004/패널토의질문지 . . . . 3 matches
         질문하는 사람이 없을 경우 사회자가 패널에게 질문할 것들
         질문을 할때 사회자의 말투라고 할까요. 내용은 위의 질문내용으로 할 수 있지만 질문접근방법에 대해서도 신경쓰면 더 좋은 답을 얻을 수 있지 않을까 합니다. 그러한 점에서 볼때 [질문의힘] 의 후반부에 나오는 인터뷰들의 예를 참고해볼만 하다 생각합니다.
         "저의 경우 지금 자료구조 수업을 듣고 있는데 머릿속에 잘 안들어옵니다. 선배님들은 자료구조가 중요한 과목이니 열심히 공부하라고 하시지만 쉽지가 않네요. 선배님께서 수업을 들으셨을때는 어떻게 하셨습니까? 그리고, 보다 능동적으로 재밌게 공부할 방법이 없을까요?"
  • 진법바꾸기 . . . . 3 matches
          * 샘플 수정해 주세요. 16진법의 경우 10~15를 A~F로 나타내기로 약속했지만, 다른 진법의 경우는 약속한 문자가 없습니다. 따라서 프로그램의 일관성을 위하여 A8D 대신 10 8 13로 나타내 주는게 좋을것 같습니다. -- 보창
          * 책의 문제를 똑같이 적은 것 뿐입니다^^ 문제를 잘 읽어보고 다른 진법의 경우도 될 수 있게 프로그램을 작성해 주세요. 24진법까지라는 제한을 둔 것도 문제의 의도가 있을 듯 하지 않나요?
  • 코드레이스/2007/RUR_PLE . . . . 3 matches
          * while문을 사용하여 중복된 씨앗의 개수가 2 이상인 임의의 개수일 경우에도 처리 가능하게 위 소스를 수정한다.
          * 아래는 간단하게 2개의 column의 경우 정렬한 모습이다.
          * 아래 그림과 같이 원래 정렬되어 있는 경우에도 제대로 작동되는지 테스트 해본다.
  • 콤비반장의메모 . . . . 3 matches
          * 사용자가 한번 플레이 했다는 걸 네트워크로 확인해 보는 법 밖이 없나요? 씨리얼 키나 MD5키 같은 걸 사용해서~
          ''사용자가 한번 플레이 했다는 걸 미디어에 직접 기록하는 방법으로는 디지털 워터마킹이 있습니다. 이 방법은 네트워킹 없이도 문제를 해결할 수 있는 방법입니다만 전문적 지식이 필요합니다. 네트워크로 확인하는 가장 쉬운 방법은 클라이언트는 재생시 마다 서버에서 인증을 받고, 서버측에서는 미디어의 아이디를 확인하고 재생횟수를 저장하는 방법이 아닐까 싶습니다. 미디어의 아이디 생성은 MD5 같은 해쉬함수 정도면 충분 할것 같습니다. --["데기"]''
  • 파이썬으로익스플로어제어 . . . . 3 matches
         //동문서버의 경우 http://www.caucse.net/page/home.php 로 해야함.
         //프레임의 경우 주의 필요
          IE Automation 을 이용한 것이므로, firefox 나 opera 의 경우는 다른 방법을 이용해야겠죠. --[1002]
  • 프로그래머가알아야할97가지/ActWithPrudence . . . . 3 matches
         이터레이션 초반에 스케줄이 아무리 여유로워 보인다고 해도, 시간 압박을 다소 받는 건 어쩔 수 없다. “제대로 하기”와 “빨리 하기” 중 선택해야 할 경우, 나중에 다시 돌아와서 고칠 수 있다는 전제하에 “빨리 하기”를 선택하고 싶어지기도 한다. 스스로에게나 팀에게 또는 고객에게 이런 약속을 할 때에는 정말로 나중에 고치겠다는 뜻이다. 그러나 십중팔구 다음 이터레이션에서 새로운 문제가 나타나서 거기에 집중하게 되곤 한다. 이렇게 연기된 작업은 기술적 부채(Technical Debt)라고 알려져 있으며 이런 일에 익숙해져서는 안 된다. 특별히, 마틴 파울러(Martin Fowler)는 그의 기술적 부채 분류 체계에서 이를 의도하지 않은 기술적 부채와 헷갈려서는 안 되는 계획적인 기술적 부채라고 부른다.
         기술적 부채는 대출과 마찬가지다. 그로 인해 단기적인 이익을 얻지만, 전액을 상환하기 전까지는 이자를 지불해야 한다. 이런 코드 내 지름길 때문에 기능을 추가하거나 코드를 구조조정하기 어려워진다. 이런 지름길은 결함과 안정적이지 못한 테스트 케이스가 자라는 밑거름이 된다. 이를 오래 방치하면 방치할수록 더 나빠진다. 수정을 하려고 할 때 즈음이면 코드를 구조조정하고 수정하기 훨씬 어렵게 만드는 그다지 좋지 않은 설계가 애초의 문제 위에 켜켜이 쌓여 있을 수 있다. 사실상, 다시 돌아가서 고쳐야 할 때는 일이 너무 심각해져서 반드시 고쳐야 할 때뿐이다. 그 때엔 일정이나 위험을 감당할 수 없어 고치기 어려운 경우가 다반사이다.
         데드라인을 맞춘다거나 기능의 단편을 구현하려고 기술적 부채를 발생시켜야 할 때가 있다. 이런 입장이 되지 않도록 애써야 하지만, 이런 상황이 반드시 필요하다면 그렇게 하되, 다만 반드시 기술적 부채를 추적해서 재빨리 갚아서 급히 끌어내려야 한다. 그렇게 타협하기로 결정하자마자, 이슈 추적 시스템에 과업 카드나 로그를 작성해서 잊어버리지 않도록 해야 한다.
  • 프로그래밍파티 . . . . 3 matches
          * 팀구성 - 현 인원 기준 4명 한팀으로 ZP 에서 두 팀, Moa 에서 한팀. (당일 참석자 확인뒤 재조정)
         프로그래밍 컨테스트의 문제도 좋지만, DesignFest의 문제는 어떨까요? 제 생각에는 후자의 경우에 더 많은 공동학습이 가능할 듯 한데... --JuNe
          ZP 랑 Moa 랑 페이지가 따로 열려있어서 정보가 분산되는 느낌이 드는데, 한곳에서 토의하는건 어떨까요? 그리고 DesignFest랑 ProgrammingContest 중 어떤거 할것인가는 무기명투표모드를 함 적용하는것도..~ (ProgrammingContest 의 경우 IPSC로 ZP가 예습(?)한 것 같은 느낌이 들어서;; 오 찔린다;) 14일까지 결정하고, 16일까지 행사때 진행방법을 구체적으로 정했으면 합니다.~ ^^ --석천
  • 프로젝트기록의필수요소토론 . . . . 3 matches
         ["neocoin"] 지금 프로젝트중 어정쩡한 상황으로 가는게 있는데, 반달정도에 한번도 업데이트 안되는 것을 그 예라고 생각합니다. 프로젝트의 끝이 명확해야 하지 않을까요? 비록 팀원들간에 사정으로 해당 프로젝트가 와해 되었다면, 팀원들중 아무나, 혹은 다른 회원의 지적으로 종료 시점을 기록해서 와해 이유와, 차후 방지에 관하여 한번쯤 생각해 봐야 할것이라고 생각 됩니다. [[BR]]
         [1002] 프로젝트의 마감부분은 중요한 부분이 됩니다. 올바른 프로젝트의 끝맺음은 새로운 프로젝트를 다시 추진할 수 있도록 뒷처리를 해주니까요. 현재 semi-project 부분의 경우 그 양이 많은데, 어떻게 끝맺음들을 할지는 좀 더 두고봐야하겠습니다. (자신 주도하로 할 자신이 없다면 페이지를 '일반화' 시켜버리십시오. 즉, 자신의 이름을 걸고 하지 말고 하나의 문서처럼 Document 화 시켜버리십시오. 그렇다면 다른 사람들이 중간에 참여하기가 더 용이할 겁니다.) 개인의 이름을 걸고 한다는 것은 그만큼 자신이 해당 페이지를 연 것에 대해 (또는 프로젝트를 연 것에) 책임을 지겠다는 것으로 해석한다면 제가 오버한 것일까요? 하지만, 그런뜻으로 하신 것이 아니라 하더라도, 어느정도 책임감을 가지셨으면 좋겠습니다.
         [1002] 프로젝트 이름에 대해서 한마디 한다면, 'Java', 'ExtremeProgramming' 은 공부하려고 하는 지식의 종류이지 프로젝트의 이름으로 부적절하다고 봅니다. 만일 Java Study 팀이 두 개인 경우라면? 문제가 발생할 수 밖에 없습니다. 초창기에 해당 기술부분으로 페이지를 열 수는 있지만, 나중에 프로젝트가 끝나고 난다음에는 일반화시켜서 본래의 이름을 반환해주는 것이 좋다고 생각합니다. (즉, 'Java' 페이지는 Java 에 대한 소개나 기술 등을 넣어주고, 'Java' 페이지이름을 썼던 프로젝트팀은 프로젝트팀 이름의 새 페이지를 만들어서 경과보고를 하는식으로..)
  • 혀뉘 . . . . 3 matches
         당신은 사람을 선택하는데에도 신중하며, 왠만한 일로는 마음이 흔들리지 않을 것입니다.
          그러면 어떤 일이 일어난다 해도 넌 마음의 평화를 잃지 않을 것이다.
          그냥 생각인데, 10여년 후에는 베트남에 대한 보상 문제로 사회가 또한번 발칵 뒤집히지 않을까 싶어.
  • 1002/TPOCP . . . . 2 matches
          try & error 식으로 접근. 프로그래밍전 미리 생각하거나 머릿속으로 그려보지 않음
          A - 문제발생시 접근방법을 바꾸기 싫어함.(성능을 희생해야 할것이라 생각해버림)
          * 아무도 도큐먼트 작업을 하려고 하지 않을 것이다.
  • 10학번 c++ 프로젝트/소스 . . . . 2 matches
          if(button=='2'){//시간을 증가 시키는 경우. function으로 묶어 줘야 할듯...
          if(button=='3'){//설정 시간 위치를 바꾸는 경우. 역시 function으로 묶어줘야 할듯....
  • 1thPCinCAUCSE/ExtremePair전략 . . . . 2 matches
          * 이때 여러 문제를 동시에 푸는 게(예: 2명이서 2개의 문제를 동시에 푸는 것) 아니라 한 문제에 대해서만 생각했습니다. 왜냐하면 예를 들어 문제 1번을 생각하는 데 A가 12분 B가 8분이 걸리고 문제 2번을 생각하는데 A가 10분 B가 15분이 걸렸다고 하면 한문제를 둘이 동시에 풀면 8 + 10... 총 18분이 걸렸을 것을 문제를 각각 나누어 풀면 최악의 경우 A가 1번 B가 2번으로 나누어 풀면 12 + 15... 총 27분까지 시간이 걸리기 때문입니다. (대회 규칙상 컴퓨터는 각 팀당 무조건 1대입니다)
          * ["TestDrivenDevelopment"]를 사용했다고 말하기는 그렇지만 테스트 케이스를 입력으로 넣어놓고 프로그래밍 중간 중간에 제대로 돌아가는 지를 확인하기 위해 지금까지의 진행 상황을 출력했습니다.
  • 2010PHP . . . . 2 matches
          * 실명확인은 하지 않는다.
         ||이름을 입력하지 않았을 경우엔 입력하라고 메세지를 띄운다. || A ||
  • 2학기파이선스터디/문자열 . . . . 2 matches
          * 작은 따옴표 혹은 큰 따옴표를 세개 연속 사용해서 정의하는 경우 쓰는 그대로 정의됨.
         valueError : substring not found in string.index
  • 2학기파이선스터디/함수 . . . . 2 matches
         즉, 리턴 값이 존재하지 않을 때 언제나 None 객체를 넘긴다.
         동일한 이름이 여러 이름 공간에 걸쳐 있을 경우 LGB에 따른다.
  • 3DAlca . . . . 2 matches
          * 판이 가운데로 왔을때 카메라도 가운데로 와야 하지 않을까 한다.
          * 약간 치우쳤을 경우 판 움직이는 것보다 좀더 빨리 움직여서 리커버를 해야 한다?
  • 3N+1Problem/황재선 . . . . 2 matches
         입력은 0과 1000000 사이의 값을 갖는 한 쌍의 정수이다. 1과 999999를 입력한 경우 몇 초 이내에 답이 나올까. Python으로 4초 이내를 목표로 구현했다. 하지만 만족할 만한 결과가 나오지 않았다. 안타깝게도 더이상 최적화할 묘안이 떠오르지 않는다 -- 재선
         http://bioinfo.sarang.net/wiki/AlgorithmQuiz_2f3Plus1 에서 yong27님의 소스코드를 보았다. 소스가 정말 깔끔했다. 실행속도가 빨라서 그 원인을 분석해가며 지난번 작성했던 코드를 수정했다. 나의 목적은 0.001초라도 빠르게 결과를 출력하는 것이었다. 실행시간을 최소화하기위해 클래스마저 없앴다. 특히 두 부분을 수정하니 실행시간이 현저히 줄었다. 하나는 클래스 멤버변수를 제거하고 지역변수화한 경우인데 왜 그런지 모르겠다. 둘째는 사전형 타입인 cycleDic 에서 key를 문자열에서 숫자로 바꾼 부분이었다. 지난번 구현시 무엇때문에 수치형을 문자열로 변환하여 key로 만들었는지 모르겠다. -- 재선
  • 3n 1/이도현 . . . . 2 matches
         1. 입력 2개가 범위로 들어가는 데 단순히 첫 번째 입력이 클 것이라는 추측이 잘못되었다. (첫 번째 수가 큰 경우도 있었음)
          // 앞에 들어오는 입력이 뒤에 입력보다 더 클 경우 (for문 에러 방지)
  • 3n+1Problem/김태진 . . . . 2 matches
          // 조건?참일경우:거짓일경우;
  • 5인용C++스터디/버튼과체크박스 . . . . 2 matches
          * 라디오버튼이 선택되어 있는지 어떻게 확인하나?
          * 체크박스가 체크되어 있는지 어떻게 확인하나?
  • 5인용C++스터디/에디트박스와콤보박스 . . . . 2 matches
          첫 번째 인수로 에디트의 스타일을 주되 에디트는 메인 윈도우가 될 수 없으므로 WS_CHILD 스타일을 주어야 하고 생성하자마자 보여야 하므로 WS_VISIBLE 스타일을 주어야 한다. 또한 에디트는 디폴트로 경계선을 가지지 않으므로 WS_BORDER 스타일을 주어야 보이게 된다. 두 번째 인수로 에디트가 차지할 사각영역을 주고 세 번째 인수로 에디트의 부모 윈도우의 포인터를 준다. 마지막 인수인 nID는 에디트 컨트롤의 ID이되 통지 메시지를 처리하지 않을 경우는 ID를 주지 않아도 상관없다.
  • ACE/HelloWorld . . . . 2 matches
          * include path 에 ace 라이브러리가 있는 곳의 경로를 넣어준다. [임인택]의 경우 {{{~cpp E:libc&c++ACE_wrappers}}}.
          GNU make를 사용하는 경우 다음과 같이 Makefile 을 만들어주어야 한다. 간단한 예) test.cpp 를 test로 빌드
  • ACM_ICPC/2012년스터디 . . . . 2 matches
         (=> 여기서 이진검색트리의 최악의 경우 시간복잡도를 줄이기 위해서 AVL Tree가 구현되어졌는데, 레드블랙트리는 AVL의 일종입니다. 정올 할 때 꼭 배울 필요성은 없습니다..)
          - K번째 숫자를 최악의 경우 O(n)에 찾는 문제
  • APlusProject/PMPL . . . . 2 matches
         Upload:APP_Sequence0606.zip -- EF경우는 객체가 둘 씩 필요한데 표기방법을 잘 몰라서 어떻게 해야할지?
         오케이. 기본 설계서 확인 끝. 병권이 형이 마무리만 하고 끝내면 됨. --재동
  • AcceleratedC++/Chapter5 . . . . 2 matches
          * 컨테이너와 컨테이너 안의 요소를 확인
          * 그 요소 안에 저장되어 있는 값 확인
  • AliasPageNames . . . . 2 matches
         # 또한, 별명으로 가리킨 페이지가 단 하나의 페이지일 경우에 연결이 바로되기를 원하시면
         # InterMap에는 TwinPages가 정의되어 있는지 확인하시기 바랍니다.
  • ArtificialIntelligenceClass . . . . 2 matches
         지금 인공지능 수업이 피곤하고 졸린 이유는 뭘까. 교수님은 학생들의 feedback 을 끌어내려고 하지만, 끌어내기 위한 방법 자체를 잘 모르신다는 느낌을 강하게 받았다. 수업 내용의 경우도 책의 수준을 벗어나지 못한다. (시간상 조명상 더 졸립기까지 하다. 또는 교수님이 책의 내용을 정확하게 이해하시지 못한다는 느낌을 많이 받게 되었다.) 차라리 좀 더 구체적인 예제를 만들고, 이에 대한 해결법의 진행 과정에 대해 설명해주신다면 어떨까.
         실제로 AI 프로그래밍을 해보면서 이경우에는 지금 나와있는 어떤 방법과 어떤 방법을 어떠한 식으로 적용해 보는게 좋고, 아니면 더 나은 대안을 찾아보고 이런식이 재밌을거 같다.
  • AspectOrientedProgramming . . . . 2 matches
          1. Java와 같은 단일 상속 모델에서는 worker를 만든다는 것이 불가능할 수 있다. 어떤 클래스들은 이미 다른 클래스들로부터 확장되었을 수도 있기 때문이다. 이는 특히 클래스 계층 구조 설계가 마무리된 후, 뒤늦게 동기화의 필요성을 깨달았을 때 흔히 발생한다. 동기화를 신경 쓰지 않은 범용 클래스 라이브러리를 통해 공유 데이터에 접근하려 하는 경우가 한 예가 될 수 있다.
          특정 메소드(ex. 객체 생성 과정 추적) 호출을 로깅할 경우 aspect가 도움이 될 수 있다. 기존 방법대로라면 log() 메소드를 만들어 놓은 후, 자바 소스에서 로깅을 원하는 메소드를 찾아 log()를 호출하는 형태를 취해야할 것이다. 여기서 AOP를 사용하면 원본 자바 코드를 수정할 필요 없이 원하는 위치에서 원하는 로깅을 수행할 수 있다. 이런 작업 모두는 aspect라는 외부 모듈에 의해 수행된다. 또 다른 예로 예외 처리가 있다. Aspect를 이용해 여러 클래스들의 산재된 메소드들에 영향을 주는 catch() 조항(clause)을 정의해 어플리케이션 전체에 걸친 지속적이고 일관적으로 예외를 처리할 수 있다.
  • AutomatedJudgeScript/문보창 . . . . 2 matches
         단순한 문자열 비교문제라는 생각이 들었다. Presentation Error와 Accepted 를 어떻게 하면 쉽게 구별할 수 있을지를 고민하다 입력받을때부터 숫자를 따로 입력받는 배열을 만들어 주는 방법을 이용하였다.
          cout << ": Presentation Error\n";
  • Bigtable기능명세 . . . . 2 matches
          1. target에게서 제대로 전달받았는지 확인
          1. target이 직접 마스터에게 자신의 태블릿 리스트를 전달하고 마스터가 target의 이전 태블릿 리스트와 현재 태블릿 리스트를 비교해 밸런싱이 잘 되었는지 확인.
  • C++Study_2003 . . . . 2 matches
          * 나쁘지 않을 것같네. 나는 마음먹은 대로 프로그래밍을 짤 수 있도록, 후반부의 문법을 가르쳐 주었으면 좋겠다는 생각을 했는데. --[선호]
          - 다음주(7/14 이후부터) 시작하지 않을까 생각합니다. --[선호]
  • CNight2011/고한종 . . . . 2 matches
         C언어에서 int a[ 2]={1,2} 선언후 printf("%d",a[2]); 같은 경우도 허용하므로 언제 터지는지 알 수가 없었다..
          많은 경우에 매모리를 복사해야하니까.
  • CauGlobal/Interview . . . . 2 matches
          * 숙제의 양과 질은 한국과 어느 정도의 차이가 있나요? (한국내에서 공부했 봤다면 국내의 경우와 비교해서)
         그냥 좋은 게 있으면 알고 오면 좋다는 식으로 접근하면 자칫 표면적인 겉핥기식 인터뷰가 되지 않을까 싶습니다. 묻는 사람 스스로가 혼자 잘 생각해 보면 대충 답을 예상하는 질문을 하게 되는 것이죠. 목표를 조금 좁히거나 명확하게 만들어 보면 어떨까요? --JuNe
  • Chapter I - Sample Code . . . . 2 matches
          인스톨하는 방법인데 별 필요 없을듯.. 우리가 직접 uCOS-II 를 설치하진 않을꺼니까.. 차라리 소스를 구해다가 컴파일을 하면 몰라도.
          OS 를 작성하다보면 전역변수가 필요한 경우가 있다. 전역변수는 어떻게 선언하는가? extern 키워드를 사용하면 된다. 하지만 uCOS-II 에서는 extern 키워드마저 #define 해서 다른 매크로로 사용한다.
  • CheckTheCheck . . . . 2 matches
         체스판 설정을 읽어서 킹이 공격받고 있는지(체크 상태인지)확인하는 일을 해야 한다. 상대방의 다음 수에 의해 킹이 죽을 수 있는 위치에 있으면 킹이 체크 상태가 된다. 흰 말은 대문자로, 검은 말은 소문자로 표시된다. 흰 편은 항상 판의 아래쪽에, 검은 편은 판의 위쪽에 자리잡는다.
         다른 말을 건너뛸 수 있는 것은 나이트밖에 없다는 것을 꼭 기억해두자. 폰의 움직임은 어느 편인가에 따라 다르다. 검은 폰이면 아래쪽 대각선 방향으로, 흰색 폰이면 위쪽 대각선 방향으로 한 칸만 움직일 수 있다. 위에 있는 예는 소문자 "p"로 표시된 검은 폰의 움직임을 나타낸 것이다. 방금 "움직인다"라고 표현한 것은 폰이 상대방 말을 잡을 수 있는 경우를 의미한다.
  • CincomSmalltalk . . . . 2 matches
          * optional components, goodies, {{{~cpp VisualWorks documentation}}} 은 필요한 경우 다운받아 만든 디렉토리에 압축을 푼다.
          * {{{~cpp ObjectStudio documentation}}} 은 필요한 경우 {{{~cpp ObjectStudio}}} 가 설치된 디렉토리에 압축을 푼다.
  • CleanCodeWithPairProgramming . . . . 2 matches
          * Jenkins 빌드가 매우 느려서 리팩토링하면서 Sonar로 Violation 테스트하기 쉽지는 않을 듯;; (특히 마무리할 때)
          * 혹시 sonar가 잘 안된다면 : /opt/sonar/logs 에서 sonar.log 확인
  • CollectiveOwnership . . . . 2 matches
         Wiki:RefactorLowHangingFruit . 고쳐야 할 것이 많다면 오히려 조금씩 고치도록 한다(그리고 고치는 작업을 엔지니어링 태스크로 혹은 유저 스토리로 명시화해서 관리한다). 고치는 중에, 5분 정도의 단위로 테스트를 해봐서 하나도 문제가 없도록 고쳐 나가야 한다. 섬과 육지를 연결하는 다리가 있을 때, 이걸 새 다리로 교체하려면 헌 다리를 부수고 새 다리를 만드는 것이 아니고, 새 다리를 만든 다음 헌 다리를 부수어야 하는 것이다. {{{~cpp formatText(String data)}}}을 {{{~cpp formatText(String data,boolean shouldBeVeryFancy)}}}로 바꾸어야 한다면, {{{~cpp fancibleFormatText}}}를 만들고, 기존의 {{{~cpp formatText}}}를 호출하는 곳을 {{{~cpp fancibleFormatText(data,false)}}}로 하나씩 바꿔나가면서 계속 테스트를 돌려보면 된다. 이게 완전히 다 되었다고 생각이 들면 {{{~cpp formatText}}} 정의를 지워본다. 문제가 없으면 {{{~cpp fancibleFormatText}}}를 {{{~cpp formatText}}}로 rename method 리팩토링을 해준다. 하지만 만약 이 작업이 너무 단순 반복적인 경우에, 충분히 용기가 생기고, 또 확신이 들면 이 작업을 자동화할 수 있다(OAOO). 예컨대 IDE에서 지원하는 자동 리팩토링을 사용하거나, 정규식을 통한 바꾸기(replace) 기능을 쓰거나, 해당 언어 파서를 이용하는 간단한 스크립트를 작성해서 쓰는 방법 등이 있다. 이렇게 큰 걸음을 디디는 경우에는 자동화 테스트가 필수적이다.
  • CompleteTreeLabeling/하기웅 . . . . 2 matches
         모든 경우에 답이 다 나오나 결과는 런타임 에러~~(찾을 수 있는 사람 있으면 찾아봐줘~~)
         깊이 1에서의 경우의 수 = 분기계수! * combination(루트를 뺀 총 노드수, 루트를 뺸 총 노드수/분기계수)
  • ComponentObjectModel . . . . 2 matches
         90년대 마이크로소프트가 내놓은 가장 핵심적인 기술로 차후 ActiveX 를 이루는 기반기술이 된다. COM은 언어가 아니라 객체지향을 지향하는 바이너리를 만들어 내는 표준을 지정해놓은 것이다. 따라서 어떤 언어이던지 COM 표준에 부합하는 바이너리 형태를 생성할 수 있다면 그 언어로 작성한 바이너리는 언어 독립적으로 COM을 지워하는 곳에서 컴포넌트로서 사용이 가능하다. 고질적으로 진입장벽이 업청나게 높은 기술로 유명하지만... -_-; .NET 이 나오면서 어떻게 쓰이게 될런지는 미지수가 되어버린 기술이다. Vista 가 나오면 완전히 legacy 로 취급되게 될 것인지... -_-;; 이제 MFC는 사장의 길로 걸어가는 것 같고... 당장이야 워낙에 기반이 이 기술이다보니 어쩔 수 없겠지만 .net 사용이 궤도에 오르면 아마도 COM 도 머지않아 그렇게 되지 않을까 싶다.
         COM 을 공부하던 당시 들던 생각 : 무언가 특정 기술에 대해서 공부를 할때 너무나 생소한 용어들이 많이 나와서 '대단해보이는' 혹은 '무언가 있어보이는' 녀석들이 있곤 하다. 그 경우, 동급의 더 나은 기술들이 해당 문제들을 어떻게 해결하는지에 대한 관찰이 필요하다.
  • ComputerNetworkClass/Exam2004_1 . . . . 2 matches
         다음 그림은 Y 라우터의 경우 포트 3으로 X 라우터와 연결되어있는 상태이며 X 라우터는 CIDR 로 ____.____.___.____ 에 대해 Network A 로, ____,____,___,____ 에 대해 Network B 로 라우팅 한다.
         UDP 가 TCP 보다 장점을 가지는 경우를 쓰고, UDP 에 알맞는 어플리케이션에 대해 2개의 예를 들어라.
  • ComputerNetworkClass/Report2006/BuildingProxyServer . . . . 2 matches
         [http://www.naturesharmony.us/misc/WoW/WoWEmu_Help/wsaerrors.html WSA Error Code]
         [http://www.elbiah.de/hamster/doc/ref/errwinsock.htm Winsock Error Code]
  • ConnectingTheDots . . . . 2 matches
         그리고 BoardPanel 에서 이벤트 발생시에는
         Game 객체의 데이터가 바뀌는 경우에는 (ex : boxClosed)
  • ContestScoreBoard . . . . 2 matches
         제출된 풀이 가운데 정답으로 판정받은 것이 하나라도 있으면 그 문제는 해결된 것으로 인정된다. 시간 벌점은 해당 문제에 대한 첫번째 정답이 제출될 때까지 걸린 시간으로 계산되며 정답이 나오기 전까지 제출된 오답이 있으면 한 개에 20분씩의 시간 벌점이 추가된다. 풀리지 않은 문제에 대해서는 시간 벌점이 전혀 적용되지 않는다.
         각 입력은 심사 큐의 스냅샷으로 구성되는데, 여기에는 1번부터 9번까지의 문제를 푸는 1번부터 100번까지의 경시 대회 참가 팀으로부터 입력된 내용이 들어있다. 각 줄은 세 개의 수와 경시 대회 문제 시간 L형식의 글자 하나로 구성된다. L은 C, I, R, U 또는 E라는 값을 가질 수 있는데 이 글자들은 각각 Correct(정답), Incorrect(오답), clarification Request(확인 요청), Unjudged(미심사), Erroneous submission(제출 오류)을 의미한다. 마지막 세 개의 케이스는 점수에 영향을 미치지 않는다.
  • Counting . . . . 2 matches
         구스타보는 합이 n인 수를 몇 개 만들 수 있는지 알고 싶어한다. n = 2 일 경우에는 11,14,41,44,2 이렇게 다섯 개의 숫자를 만들 수 있다 (5 이상의 수도 셀 수는 있다. 다만 쓰지 못할 뿐이다). 하지만 2보다 큰 경우에 대해서는 그가 만들 수 있는 수의 개수를 알 수가 없어서 여러분에게 도움을 청했다.
  • CvsNt . . . . 2 matches
         cvsgraph_path =F:webviewcvswindowsbinaries # 윈도우즈환경이고 잘 안될경우 절대경로로.
         CVSNT 의 경우 cvs 자체 사용자와 NT 사용자 둘 다 받는 것 같다. 그래서 NT 쪽에 Poweruser 그룹의 사용자들을 추가해주면 cvs도 사용할 수 있게 된다.
  • DataStructure/Foundation . . . . 2 matches
          * 기본적으로 함수를 호출하는 것 자체가 하나의 Overhead이며, 재귀호출의 경우 계속 함수스택에 해당 함수코드부분이 쌓여나가는 것이므로, n 의 값이 커질 경우 메모리를 많이 이용하게 됩니다. 하지만, 재귀호출의 표현법은 일반 수열의 표현식을 거의 그대로 이용할 수 있습니다. 코드가 간단해집니다.
  • DataStructure/List . . . . 2 matches
          * 장점 : 빠르다. (배열 같은 경우는 중간에 하나 지우고 나면 그 뒤에껄 다 앞으로 땡겨야 한다. 수행시간 절라 오래 걸린다. 하지만 리스트는 다음 노드를 가리키는 포인터만 바꿔주면 된다.)
          if(coordi <0 || coordi >= m_Node.length) //좌표는 0부터 시작됨, 입력 위치가 해당 범위를 벋어날 경우
  • DataStructure/Tree . . . . 2 matches
          * x의 Child가 1개 있을 경우 - 그 노드 지우고 그 자식들을 다 위로 올린다. 고로 할아버지의 자식이 된다는 것이다.(뭔가 좀 이상?--;)
          * x의 Child가 2개 있을 경우 - 그 노드의 Left Subtree에서 가장 큰 값을 찾는다. 이값을 y라고 하면 y는 오른쪽 Child가 없다. y를 x자리에 갖다 놓고 여기서 다시
  • DebuggingSeminar_2005/AutoExp.dat . . . . 2 matches
         CFileException =cause=<m_cause> OS Error=m_lOsError
         _com_error=<m_hresult,hr>
         ; This section lets you define your own errors for the HRESULT display.
         ; You need to list the error code in unsigned decimal, followed by the message.
         ;1234=my custom error code
  • DebuggingTip . . . . 2 matches
         기본 예제와 같은 작업을 했는지 확인한다.
         바른 입력값을 주었는지 확인한다.
  • DirectDraw/DDUtil . . . . 2 matches
          색상수가 적은 비트맵의 경우에는 팔레트를 지정해 주어야 한다.
         3. 비트맵으로 surface를 만든 경우가 아니라면 surface에 직접 그림을 그려 넣어줄 수 있다.
  • DoWeHaveToStudyDesignPatterns . . . . 2 matches
         제 개인적인 의견으로는, 다른 것들과 마찬가지로 뭐든지 공부한다고 해서 크게 해가 되지는 않겠지만(해가 되는 경우도 있습니다 -- 다익스트라가 BASIC을 배워 본 적이 있는 학생은 아예 받지 않았다는 것이 한 예가 될까요?) 공부해야 할 필요가 있겠는가라는 질문에는 선뜻 "그렇다"고 답하기가 쉽지 않습니다. 여기에는 몇가지 이유가 있습니다. (제 글을 "DesignPatterns를 공부하지 마라"는 말로 오해하지는 말아 주기 바랍니다)
         우선 효율성과 순서의 문제입니다. DesignPatterns는 이미 해당 DesignPatterns를 자신의 컨텍스트에서 나름대로 경험했지만 아직 인식하고 있지는 않는 사람들이 공부하기에 좋습니다. 그렇지 않은 사람이 공부하는 경우, 투여해야할 시간은 시간대로 들고 그에 비해 얻는 것은 별로 없습니다. 어찌 보면 아이러니칼하지만, 어떤 디자인 패턴을 보고 단박에 이해가 되고 "그래 바로 이거야!"라는 생각이 든다면 그 사람은 해당 디자인 패턴을 공부하면 많은 것을 얻을 겁니다. 하지만, 잘 이해도 안되고 필요성도 못 느낀다면 지금은 때가 아니라고 생각하고 책을 덮는 게 낫습니다. 일단은 다양한 프로그램들을 "처음부터 끝까지" 개발해 보는 것이 중요하지 않나 생각합니다. (see also [WhatToProgram])
  • Eclipse와 JSP . . . . 2 matches
         (필요한 경우) Windows->Preferences->Tomcat->Advanced 선택 후
         == Web 브라우저 에서 확인해보자 ==
  • EffectiveSTL/Iterator . . . . 2 matches
          * const_iterator는 될수 있으면 쓰지 말라고 했지만, 어쩔수 없이 써야할 경우가 있다.
          * 그래서 이번 Item에서는 const_iterator -> iterator로 변환하는 법을 설명하고 있다. 반대의 경우는 암시적인 변환이 가능하지만, 이건 안된다.
  • EightQueenProblem2Discussion . . . . 2 matches
         이미 알고리즘 수업 시간을 통해 생각해본 문제이기에 주저없이 백트래킹(BackTracking) 기법을 선택해서 슈도코드를 종이에 작성해보았고 그를 바탕으로 구현에 들어갔습니다.(''그냥 호기심에서 질문 하나. 알고리즘 수업에서 백트래킹을 배웠나요? 최근에는 대부분 AI쪽으로 끄집어 내서 가르치는 것이 추세입니다만... 교재가 무엇이었나요? --김창준 Foundations of Algorithms Using C++ Pseudocode, Second Edition 이었습니다. ISBN:0763706205 --이덕준'') 백트래킹은 BruteForce식 알고리즘으로 확장하기에 용이해서 수정엔 그리 많은 시간이 걸리지 않았습니다. 만일 EightQueenProblem에 대한 사전 지식이 없었다면 두번째 과제에서 무척 당황했을것 같습니다. 이번 기회에 코드의 적응도도 중요함을 새삼 확인했습니다. --이덕준
         어제 서점에서 ''Foundations of Algorithms Using C++ Pseudocode''를 봤습니다. 알고리즘 수업 시간에 백트래킹과 EightQueenProblem 문제를 교재를 통해 공부한 사람에게 이 활동은 소기의 효과가 거의 없겠더군요. 그럴 정도일줄은 정말 몰랐습니다. 대충 "이런 문제가 있다" 정도로만 언급되어 있을 주 알았는데... 어느 교재에도 구체적 "해답"이 나와있지 않을, ICPC(ACM의 세계 대학생 프로그래밍 경진대회) 문제 같은 것으로 할 걸 그랬나 봅니다. --김창준
  • FOURGODS/김태진 . . . . 2 matches
          * A-B-C-D(-A) 와 같은 순서가 되도록 하는 것의 경우의 수 구하기
          * B와 D의 후보를 찾아서 조건에 맞는지 확인한다.(A,C와 연결되어있는지) (n)
  • FindShortestPath . . . . 2 matches
         ex1) 1,10 을 입력했을경우.. (1,2,10)이 두 숫자간의 가장 짧은 거리.. 고로 3이 되겠지..
         ex2) 17,10 을 입력했을경우.. (17,6,1,3,10)-> 5.
  • FocusOnFundamentals . . . . 2 matches
         지금 공부하고자 하는 것이 사장될 기술일까 걱정됩니까? 정말 뜰 수 있을까 의심이 갑니까? 많은 사람들은 자바가 사장될 것이라고 말했습니다. 많은 사람들은 블루투스가 뜰 것이라고 말했습니다. 어떻게 해야 하나요? FocusOnFundamentals. 오라클만 후벼파기보다 RDB의 근본을 후벼파면, 자바만 후벼파기보다 OOP의 근본을 후벼파면 적어도 향후 5년간은 든든할 것입니다. 이런 근본을 후벼파는 것은 언제할 수 있나요? 학생 때 할 수 있습니다. 사회에 나가면 하기 어렵나요? 그렇습니다. 미리 지엽에만 매달릴 필요는 없습니다. 단, 예외는 있습니다. 공부하고 싶어서 밤에 자다가도 가슴이 뛴다면 그것이 지엽이건 근본이건 매진 하십시오. 후회하지 않을 겁니다. 하지만 마냥 해야할 것 같아서, 나중에 취직에 도움이 될 것 같아서, 남들 다 하니까 등등의 잡다한 기술을 주워담는 어리석음은 범하지 마십시오.
          ''우선, 제가 OOP나 RDB 등 근본을 공부하라고 한 말을 OOP, RDB 이론서만 붙잡고 늘어져라는 의미로 곡해하신 듯 합니다. 자바 말고 OOP를 공부해라는 말이 부디 자바책은 보지말고 OOP 이론서만 보라는 말로 오해되지 않기를 바랍니다(저는 요즘들어 OOP 공부는 스몰토크에서 시작하는 것이 좋지 않을까 생각하고 있습니다). 그리고 잡다하다는 것은 여러가지 너저분하게 섞여있어 체계가 없다는 것입니다. "X가 잡다하다"고 하는 것은 X 속에 있는 내용물이 체계가 없다는 이야기가 됩니다. 잡다하다는 것은 존재 지향이 아니고 관계 지향의 표현입니다. --["김창준"]''
  • FoundationOfUNIX . . . . 2 matches
          * ps (process state 프로세스 상태 확인하기)
          * -i (yes, no 묻는거.. 만약 rm -i ex.txt 했을경우 지울것인가 묻게 만드는것..)
  • FromDuskTillDawn/조현태 . . . . 2 matches
          //// 가장 시간이 낮은 경우에 대해서 연산을 수행합니다. ////
          //// 가장 시간이 낮은 경우를 제일 앞으로 둡니다. ////
  • Gof/Command . . . . 2 matches
         다음과 같은 경우에 CommandPattern을 이용하라.
          * logging change를 지원하기 원할때. logging change 를 지원함으로서 시스템 충돌이 난 경우에 대해 해당 command를 재시도 할 수 있다. Command 객체에 load 와 store operation을 추가함으로서 change의 log를 유지할 수 있다. crash로부터 복구하는 것은 디스크로부터 logged command를 읽어들이고 Execute operation을 재실행하는 것은 중요한 부분이다.
  • Gof/Facade . . . . 2 matches
         이 구현에서는 사용하려는 code-generator의 형태에 대해서 hard-codes (직접 특정형태 부분을 추상화시키지 않고 바로 입력)를 했다. 그렇게 함으로서 프로그래머는 목적이 되는 아키텍처로 구체화시키도록 요구받지 않는다. 만일 목적이 되는 아키텍처가 단 하나라면 그것은 아마 이성적인 판단일 것이다. 만일 그러한 경우가 아니라면 우리는 Compiler 의 constructor 에 CodeGenerator 를 인자로 추가하기 원할 것이다. 그러면 프로그래머는 Compiler를 instance화 할때 사용할 generator를 구체화할 수 있다. Compiler facade는 또한 Scanner나 ProgramNodeBuilder 등의 다른 협동하는 서브시스템클래스를 인자화할 수 있다. 그것은 유연성을 증가시키지만, 또한 일반적인 사용형태에 대해 인터페이스의 단순함을 제공하는 Facade pattern의 의의를 떨어뜨린다.
         ET++ application은 또한 built-in browsing support를 없앨수도 있다. 이러한 경우 ProgrammingEnvironment는 이 요청에 대해 null-operation으로서 구현한다. 그러한 null-operation는 아무 일도 하지 않는다. 단지 ETProgrammingEnvironment subclass는 각각 대응하는 browser에 표시해주는 operation을 가지고 이러한 요청을 구현한다. application은 browsing environment가 존재하던지 그렇지 않던지에 대한 정보를 가지고 있지 않다. application 과 browsing 서브시스템 사이에는 추상적인 결합관계가 있다.
  • Gof/Visitor . . . . 2 matches
         예를든다면, visitor를 이용하지 않는 컴파일러는 컴파일러의 abstact syntax tree의 TypeCheck operation을 호출함으로서 type-check 을 수행할 것이다. 각각의 node들은 node들이 가지고 있는 TypeCheck를 호출함으로써 TypeCheck를 구현할 것이다. (앞의 class diagram 참조). 만일 visitor를 이용한다면, TypeCheckingVisior 객체를 만든 뒤, TypeCheckingVisitor 객체를 인자로 넘겨주면서 abstract syntax tree의 Accept operation을 호출할 것이다. 각각의 node들은 visitor를 도로 호출함으로써 Accept를 구현할 것이다 (예를 들어, assignment node의 경우 visitor의 VisitAssignment operation을 호출할 것이고, varible reference는 VisitVaribleReference를 호출할 것이다.) AssignmentNode 클래스의 TypeCheck operation은 이제 TypeCheckingVisitor의 VisitAssignment operation으로 대체될 것이다.
         VisitorPattern은 다음과 같은경우에 이용한다.
  • HASH구하기/오후근,조재화 . . . . 2 matches
          if(temp == -1) //파일끝일경우
          else //파일끝이 아닐경우
  • HardcoreCppStudy/두번째숙제/CharacteristicOfOOP/김아영 . . . . 2 matches
         데이터 은닉이란 모듈이 그것이 갖는 기능들을 명세한 인터페이스(interface)를 통해서만 접근되고, 그 기능을 구현하는 방법은 다른 모듈로부터 은닉되도록 하는 것을 말한다. 캡슐화된 객체의 외부 인터페이스를 엄밀히 정의함으로써 독립적으로 작성된 모듈간의 상호 종속성을 극소화하여 캡슐화된 객체는 외부 인터페이스만을 통하여 접근될 수 있도록 한다면, 세부적인 구현 상세 사항에 대해서는 객체내에 은닉시킬 수 있다. 또한 캡슐화된 객체는 객체 구현내역을 변경, 혹은 향상시킬 때 이 객체를 사용하는 타 객체들을 변경하거나 다시 컴파일하지 않도록 할 수 있다. 또 모듈의 내부 구현 사항들이 외부의 접근으로부터 보호될 수 있음으로, 그 객체의 정당성을 보증할 수 있으며, 오류가 발생되었을 경우에 오류는 한 모듈내로 국지화될 수 있다.
         우리가 흔히 다루는 각각의 객체들은 서로의 관련되 영역을 사용할 수 있는 부분과 없는 부분이 있다. 이것은 별도로 접근이 가능한 영역과 불가능한 영역으로 나누어서 관리하기 때문이다. 이것을 바로 캡슐화라 한다. 갭슐화는 바로 접근 가능한 코드와 불가능한 코드로 나눔으로 인해서 데이터나 특별한 영역을 보호하거나 감추는 역활을 할 수 있다. 때문에 필요한 경우 데이터의 접근 필드를 제한함으로서 데이터를 보호하는 결과를 얻을 수 있다.
  • HelpForDevelopers . . . . 2 matches
         모니위키 사용중에 문제점이 발생하는 경우에는 지체없이 http://kldp.net/projects/moniwiki/bugs 사이트에서 문제점을 보고해주시기 바랍니다. 혹은 사용중에 불편한 점이 있다고 생각하셔도 보고해 주시면 고맙겠습니다.
         개발자는 사용자가 불편하게 생각하는 부분을 잘 모르는 경우가 많습니다. 사용자의 피드백은 모니위키를 좀 더 사용하기 편리하게 만들어 줄 가능성을 열어줍니다!
  • HelpMiscellaneous . . . . 2 matches
         특별히 한글의 경우 그 띄어쓰기가 일관되지 못하는 경우가 많이 있는데, 모니위키 1.1.5부터는 띄어쓰기에 상관 없이 제목을 검색해주므로 띄어쓰기를 조금 잘못하더라도 손쉽게 페이지를 찾을 수 있게 되었습니다.
  • HelpOnInstallation/MultipleUser . . . . 2 matches
         이 경우 대부분의 php파일이 설치되지 않은채로 각 사용자가 사용하게 되기 때문에, 모니위키의 php취약점이 발견되었을 경우 관리자가 설치된 [모니위키]만을 업데이트하는 것으로 문제점을 해결할 수 있게 됩니다. 물론 일부 카피된 파일 및 php 이외에 웹상에 직접 노출되는 지역 파일은 사용자가 직접 업데이트해야 하겠지요.
  • HelpOnPageDeletion . . . . 2 matches
         페이지 지우기를 사용할 수 있는 위키의 경우 {{{DeletePage}}} 액션을 통해 페이지를 지우실 수 있습니다. 페이지를 지운다는 것은 가장 최근의 편집 복사본이 지워진다는 것이며, 페이지의 모든 변경내역은 여전히 남아있게 됩니다.
         이러한 경우에는 일반 사용자가 복구하려면 위의 '''수동 복구'''를 참조하여 복구하시면 됩니다.
  • Hessian . . . . 2 matches
         Resin 을 이용하는 경우라면 Hessian 이용해서 간단하게 RPC 를 구현할 수 있다.
         Java 의 경우는 다음과 같다. 위에서 정의한 interface 인 Basic 이 있어야 한다.
  • HowBigIsIt? . . . . 2 matches
         각 테스트 케이스에 대해 원들을 모두 포장할 수 있는 가장 작은 직사각형 상자의 크기를 출력한다. 각 케이스에 대한 결과가 서로 다른 줄에 출력되어야 하며, 소수점 아래로 셋째 자리까지 출력한다. 숫자가 1보다 작지 않은 경우에는 앞에 불필요한 0을 덧붙이지 않는다(1 미만인 경우에는 0.543 같은 식으로 앞에 0을 하나 붙여준다).
  • HowManyFibs?/1002 . . . . 2 matches
         input space 로 볼때 최악의 경우가 1~10^100 일 수 있겠다는 생각을 하면서 뭔가 다른 공식이 있겠다 생각, 피보나치의 closed-form 을 근거로 해결할 방법에 대해 궁리해보다. a,b 구간에 가장 가까울 f(x),f(y)를 각각 구하고, y-x 를 구하면 되리라고 생각. 하지만 3시간동안 고민했는데 잘 안되어서, 그냥 노가다 스러운 방법으로 풀기 시작.
         피보나치 수가 굉장히 크게 늘어나는 수라는 점을 생각했더라면, input space 가 크더라도 fibo(n) 의 n 값이 커지지 않을 것이라는 것을 미리 알고 있었더라면 저런 고민을 안했을 것 같긴 하다. 하지만, 이러한 사전지식이 없는 가운데, 문제를 풀라고 한다면 어떻게 접근하는게 가장 좋았었을까. 고민된다.
  • HowManyZerosAndDigits . . . . 2 matches
         만약 800진법일 경우 0~9 까지의 숫자는 표현할수 있겠지만 그 이후의 숫자는 어떻게 표현하나요? 16진법으로 나타낼때 0에서 F 로 표현하는 것처럼, 800진법에서 10이상의 수를 표현해야 할 방법이 있어야 할 것 같은데요. 알파벳을 이용한다고 해도 Z(35)이후의 수는 표현할 방법이 없는데요. 이에 대한 정의가 없다면 정확한 답을 구할 수 없을 것 같습니다(문제에서 말한 ''0의 개수''말이죠). 간단한 예를 들어 설명하자면,
         책에 있는 올림피아드 문제 원문 그대로를 실었습니다. 문제가 명확하지 않다는 점을 부정할 순 없지만, 문제에 손을 댈 경우 제 주관적인 생각이 문제의 틀을 바꿔버릴 수 있기때문에 어쩔수 없습니다. 개인적 소견으로는 N!을 B진법으로 변환하는 것이므로, 입력을 받는 N이 조금만 커져도 N!이 굉장히 커지기 때문에 N은 B보다 작은 범위, 즉 B진수 체계에서 한자리를 입력받는 문제가 아닐까 합니다. 또한, 문제의 마지막 조건인 2^31-1 같이 int형의 오버플로우방지를 해 놓은 것에서 보듯 범위를 어느정도 제한해 놓았다고 보여집니다. 정확한 답변을 드리지 못해 죄송합니다. - [문보창]
  • HowToStudyDataStructureAndAlgorithms . . . . 2 matches
         제가 생각컨데, 교육적인 목적에서는, 자료구조나 알고리즘을 처음 공부할 때는 우선은 특정 언어로 구현된 것을 보지 않는 것이 좋은 경우가 많습니다 -- 대신 pseudo-code 등으로 그 개념까지만 이해하는 것이죠. 그 아이디어를 Procedural(C, 어셈블리어)이나 Functional(LISP,Scheme,Haskel), OOP(Java,Smalltalk) 언어 등으로 직접 구현해 보는 겁니다. 이 다음에는 다른 사람(책)의 코드와 비교를 합니다. 이 경험을 애초에 박탈 당한 사람은 귀중한 배움과 깨달음의 기회를 잃은 셈입니다. 참고로 알고리즘 교재로는 10년에 한 번 나올까 말까한 CLR(''Introduction to Algorithms, Thomas H. Cormen, Charles E. Leiserson, and Ronald L. Rivest'')을 적극 추천합니다(이와 함께 혹은 이전에 Jon Bentley의 ''Programming Pearls''도 강력 추천합니다. 전세계의 짱짱한 프로그래머/전산학자들이 함께 꼽은 "위대한 책" 리스트에서 몇 손가락 안에 드는 책입니다. 아마 우리 학교 도서관에 있을 것인데, 아직 이 책을 본 적 없는 사람은 축하드립니다. 아마 몇 주 간은 감동 속에 하루하루를 보내게 될 겁니다.). 만약 함께 스터디를 한다면, 각자 동일한 아이디어를 (같은 언어로 혹은 다른 언어로) 어떻게 다르게 표현했는지를 서로 비교해 보면 또 배우는 것이 매우 많습니다. 우리가 자료구조나 알고리즘을 공부하는 이유는, 특정 "실세계의 문제"를 어떠한 "수학적 아이디어"로 매핑을 시켜서 해결하는 것이 가능하고 또 효율적이고, 또 이를 컴퓨터에 어떻게 구현하는 것이 가능하고 효율적인지를 따지기 위해서이며, 이 과정에 있어 수학적 개념을 프로그래밍 언어로 표현해 내는 것은 아주 중요한 능력이 됩니다. 개별 알고리즘의 카탈로그를 이해, 암기하며 익히는 것도 중요하지만 더 중요한 것은 알고리즘을 생각해 낼 수 있는 능력과 이 알고리즘의 효율을 비교할 수 있는 능력, 그리고 이를 표현할 수 있는 능력입니다.
         첫번째가 제대로 훈련되지 못한 사람은 알고리즘 목록의 스테레오 타입에만 길들여져 있어서 모든 문제를 자신이 가진 알고리즘 목록에 끼워맞추려고 합니다. DesignPatterns를 잘 못 공부한 사람과 비슷합니다. 이 사람들은 마치 과거 수학 정석을 수십번을 공부해서 문제를 하나 던져주기만 하면, 생각해보지도 않고 자신이 풀었던 문제들의 패턴 중 가장 비슷한 것 하나를 기계적, 무의식적으로 풀어제끼는 "문제풀이기계"와 비슷합니다. 그들에게 도중에 물어보십시오. "너 지금 무슨 문제 풀고있는거니?" 열심히 연습장에 뭔가 풀어나가고는 있지만 그들은 자신이 뭘 풀고있는지도 잘 인식하지 못하는 경우가 많습니다. 머리가 푸는 게 아니고 손이 푸는 것이죠.
  • IDL . . . . 2 matches
         [CORBA] 의 경우 분산된 네트워크상에 따로 위치한 객체 간의 투명한 접근을 제공하는 서로 간의 약속이 필요하다. 이런 약속을 정의할 때 특정 언어([C], [C++], [Java] 등)에 의존하지 않는 인터페이스 정의 언어가 필요하게 되었는데, 그것이 바로 IDL(Interface Definition Language)이다. 서버와 클라이언트가 서로 통신을 하기 위해서 서버는 클라이언트에게 제공하는 서비스 인터페이스를 IDL 로 정의하게 되며, 클라이언트는 이런 인터페이스 정보를 활용하여 서비스를 활용하게 되는 것이다. CORBA 프로그램을 개발하기 위해서는 가장 먼저 IDL 을 정의해야 하는데, IDL 은 구현에 대한 정보는 포함하고 있지 않아 정의된 IDL 을 원하는 언어로
         물론, 인터페이스를 정의하는 방법이 IDL 만 있는 것은 아니다. [Visibroker] 의 경우 [Caffeine] 이라는 것을 이용하면 IDL 을 사용하지 않아도 되며, Java 의 RMI 나 RMI-IIOP 를 이용해면 IDL 을 몰라도 인터페이스를 정의할 수 있다. 하지만, IDL 은 OMG에서 규정하고 있는 인터페이스 정의 언어의 표준이고 개발자가 익히기에 어렵지 않은 만큼 CORBA 프로그램을 할 때는 꼭 IDL 을 사용하도록 하자.
  • ISBN_Barcode_Image_Recognition . . . . 2 matches
          * 바코드를 잘못 인식하는 경우를 방지하기 위해. 실제 데이터로부터 생성되는 데이터가 있을 수 있다.
          * 영상 일부에 빛이 비춰지거나, 그림자가 드리울 경우 Global Threshold를 수행하면 기대한 결과를 얻기 힘들다.
  • Java Study2003/첫번째과제/노수민 . . . . 2 matches
         자바는 컴파일 시에 에러 검사를 철저하게 하고, 실행 시에 발생할 수 있는 에러에 대해서도 실행 시에 철저하게 검사를 수행함으로써 신뢰도가 높은 프로그램을 작성할 수 있도록 해 줍니다. 또한, C/C++ 프로그램 개발자들을 가장 혼란스럽게 하고, 프로그램의 치명적인 오류를 발생시킬 수 있는 포인터 및 포인터 연산을 자바에서는 사용하지 않게 함으로써, 포인터를 사용함으로써 프로그래머가 범할 수 있는 오류를 없앴다는 것입니다.
          * 자바 Applat 에서 - 자바 Bytescode는 소스를 자바 컴파일러로 컴파일한 결과물로서 HTML 문서에 비해 크기가 매우 크며 웹 서버에서 브라우저로 전송되기까지가 많은 시간이 걸린다. 일단 전송된 애플릿은 브라우저가 수행시키므로 그 속도는 클라이언트의 시스템 환경과 브라우저가 내장하고 있는 JVM의 성능에 따라 좌우된다. 28.8K 정도의 모뎀 환경이라면 그럴듯한 애플릿을 다운 받아서 수행하는데는 많은 인내심이 필요하게 된다. 그러나, 점차 인터넷 통신 환경이 좋아지고 있으며 가정집을 제외한 대부분의 사무실과 학교 등에서는 전용 회선이 깔려 있고, 넉넉한 환경의 전용선이라면 애플릿을 구동하는데 무리가 없다. 근래에는 가정에서도 초고속 통신 환경을 싼 값에 구축할 수 있으므로 점차적으로 인터넷 환경에서 애플릿의 전송은 부담이 되지 않을 것이다. JVM도 기술적으로 많이 향상되었고, Sun뿐 아니라, IBM과 같은 매머드급 회사들이 뛰어들어 개발하고 있어 초기 지적받았던 JVM의 구동 속도는 점차 문제가 되지 않는 상황이다.
  • JavaScript/2011년스터디 . . . . 2 matches
          * 좀 더 부드러운 선을 그리는 것을 만들었습니다.(처음에는 두 점을 찍으면 그 사이가 직선이 되는걸 하려고 했지만 ....) 버그로는 마우스를 뗐다가 다시 움직이는 경우에도 직선이 생긴다는거였네요. -[김태진]
          * [김태진] - 어쩐지 위에 제가 썼다보니 전반이 제 후기인거같...습니다. 아무래도 우리는 JavaScript스터디라는 명목보다 WebProgramming스터디가 좀 더 적합해지지 않을까 생각이 되는데 다음에 의견을 모아봐야겠네요.
  • JavaStudy2004/버튼과체크박스 . . . . 2 matches
          * 라디오버튼이 선택되어 있는지 어떻게 확인하나?
          * 체크박스가 체크되어 있는지 어떻게 확인하나?
  • JollyJumpers . . . . 2 matches
         각 줄 마다 Jolly 여부를 판단하는 경우가 있을 것 같네요. (2)번 방식의 경우 숫자대신 영문자가 들어오면 프로그램을 끝내는 방식으로 하면 좋을것 같군요. -- [문보창]
  • JollyJumpers/강희경 . . . . 2 matches
         졸리점퍼임을 확인하는 2가지 조건
         2 2 3 4의 입력을 받는 경우 2 2 3만 인식하여 졸리점퍼라고 판단하게 된다. 현재는 고칠 생각없음
  • JollyJumpers/문보창 . . . . 2 matches
         한개의 정수 1 n 이 들어와 있을경우 이것을 Jolly로 판단해야할까?
          showJolly(true); // n이 1일 경우 Jully 이다. 왜 그럴까?
  • Knapsack . . . . 2 matches
         처음부터 단박에 이 문제를 푸는 것보다 조금 더 제한적이고 쉬운 문제에서 일반적이고 어려운 문제로 점진적으로 진행해 나가는 것은 어떨까요. NoSmok:HowToSolveIt 에서 소개하는 문제 해결 테크닉 중 하나이기도 하죠. 훨씬 더 높은 교육적 효과를 기대할 수 있지 않을까 합니다.
         그리고 누군가가 만든 프로그램이 옳다는 것을 테스트하기 위해서는 이를 자동화하는 것이 편할 것이고, 이것을 위해서는 인풋과 아웃풋을 좀 단순화하는 것이 좋지 않을까 합니다. ICPC의 문제들을 구경해 보세요.
  • Kongulo . . . . 2 matches
          error codes that Kongulo always checks explicitly rather than catching them
          def http_error_304(self, req, fp, code, msg, hdrs):
          # We check error codes explicitly so we don't want an exception
          http_error_400 = http_error_401 = http_error_402 = http_error_403 \
          = http_error_404 = http_error_304
         # exceptions for HTTP error codes we handle explicitly.
          except IOError:
          except ValueError:
          parser.error('Provide at least one base URL')
         # except pythoncom.ole_error:
         # print ('ERROR: You need to install Google Desktop Search to be able to '
          # error if already registered. We cheat and just catch the error and
          # TODO narrow to only the error that GDS returns when component
  • LUA_6 . . . . 2 matches
         __newindex : 새로운 index가 추가 되었을 경우에 호출 되는 meta 함수
         콜론이 ":" 이 함수에서 사용 될 경우는 함수의 파라미터로 self를 생략하게 할 수 있습니다.
  • Linux . . . . 2 matches
         리눅스는 현재 컴퓨터의 커다란 흐름중의 하나이다. FSF에 의해서 지원을 받는 핵심적인 운영체제로 현재 기능적, 보안적 측면이 기존의 [Unix] 시스템에 버금갈 정도 발전하였고 [GNU]의 사상하에 만들어진 [GPL]을 따르기 때문에 무료로 사용이 가능하여 서버 운영체제로 많은 인기를 누리고 있다. 본디 리눅스라는 하는 것은 운영체제의 [Kernel] 명칭이며, 주로 접하게 되는 패키지 형태로 이루어진 배포판의 전체 구성을 리눅스라고 여기는 경우가 있으나 이는 리눅스의 광의적 정의라고 생각하면 될듯 싶다.
         리눅스와 비슷한 운영체제로는 정통적인 유닉스 클론 이라고 평가받는 [:FreeBSD BSD]계열이 있다. BSD계열중 가장 잘알려진 [http://www.kr.freebsd.org FreeBSD]의 경우 실제로 과거부터 hotmail.com, yahoo.com, cdrom.com 을 운영해온 네트워킹에 대한 안정성이 입증된 운영체제이다. 실제로 2.6커널의 도입이전에는 BSD의 네트워킹이 더욱 뛰어나다는 평가를 받았지만 일반적인 의견이었으나, 많은 구조적 변경을 통해서 리눅스는 현재 이런 점을 극복하고 BSD와 리눅스를 선택하는 것은 운영자의 기호일 뿐이라는 이야기를 한다. 최근에는 리눅스를 데스크탑의 용도로 까지 확장하려는 노력의 덕분에 로케일 설정관련 부분이 대폭 강화되었으며, 사용자 편의성을 고려한 WindowManager인 [Gnome], [KDE] 등의 프로그램이 대폭 강화되면서 low-level 유저라도 약간의 관심만 기울인다면 충분히 서버로써 쓸 만한 운영체제로 변모하였다.
  • LinuxSystemClass . . . . 2 matches
         개인적으로 교재가 마음에 든다. 단, 제대로 공부할 것이라면 가능한 한 원서를 권한다. 한서의 경우 용어의 혼동문제와, 중간 오역문제가 눈에 띈다. (inexpensive를 expensive 로 정 반대의 뜻으로 해석한) 뭐, 물론 그럼에도 불구하고 아마 사람들은 한서 읽는 속도가 원서 읽는 속도의 3배 이상은 될테니. 알아서 잘.
         학교 수업공부를 하거나 레포트를 쓰는 경우 위의 학교 교재와 함께 'The Design of the Unix Operating System' 을 같이 보면 도움이 많이 된다. 해당 알고리즘들에 대해서 좀 더 구체적으로 서술되어있다. 단, 책이 좀 오래된 감이 있다.
  • Lotto/강소현 . . . . 2 matches
         == Trial and Error ==
          * Presentation Error - 다 출력하고 마지막에 엔터 하나 더 쳐야함.
  • MFC/CollectionClass . . . . 2 matches
          해시과정에서 키가 독특한 자신만의 해시값을 갖지 못하는 경우도 존재한다. 이 경우 객체는 다른 요소또는 이전에 해시되어 동일한 값으로 저장된 객체와 링크된다.
  • MFC/Serialize . . . . 2 matches
         이후에 클래스 정의를 수정한다면 스키마 번호를 바꾸어야 한다. (다른 버전의 파일을 읽으려 하면 예외를 발생시킨다.
          * 클래스가 CObject 의 자식 클래스 인지 확인하라.
  • MFCStudy_2001 . . . . 2 matches
         [상민]:최종 결과물을 올렸습니다. 이거 본사람 확인하세요. 맞나 --; [[BR]]
         [창섭]:파트너 상협이꺼. 오... 상당히 똑똑했다. 어쩌다가 갑자기 연산오류로 종료하는 경우도 있었지만 그래도 멋진 프로그램이다. 호오.. 파트너로써 미안한걸..^^;[[BR]]
  • ModelingSimulationClass_Exam2006_1 . . . . 2 matches
         (a) 해당 모델을 구성하고 필요할 경우 가정을 해도 좋다. (7 points)
         1) 나의 경우 해당 문제를 간단한 확률 모델 + Single Queue, Multi Server 의 문제로 파악했다. 확률모델은 1차 합격자를 가리는데 쓰이고, SQMS모델은 실기 시험을 가리는데 사용하고, 가정으로 실기 시험은 7분을 최고 점으로갖는 Triangle Distribution 이라고 가정하고 풀이했음.
  • MoniWikiOptions . . . . 2 matches
          * 기본 css의 경로를 설정한다. 기본값은 `$url_prefix.'/css/default.css'` $theme를 설정한 경우는 이 값이 자동 설정된다.
          * (monisetup.php에 의해 자동 결정된다) apache2를 쓸 경우는 '?'를 쓰거나, `AcceptPathInfo on`를 쓰고 '/'로 지정한다.
  • NSIS/예제2 . . . . 2 matches
         ; (만일 인스톨을 다시 할경우
         ; (만일 인스톨을 다시 할경우
  • NumberBaseballGame . . . . 2 matches
         조금 더 문제 정의를 명확히 할 필요가 있지 않을까 합니다. (여기에 올라온 몇 개의 코드들을 살펴볼 때 명확한 스펙이 잘 전달되지 않은듯 합니다)
         만약 그렇다면, 다음의 경우에 스트라이크와 볼은 각각 얼마인가요? 혹은 어떤 에러 메시지를 출력하나요?
  • ObjectProgrammingInC . . . . 2 matches
         별 다른 뜻은 아니고, C++ 컴파일러의 경우 메소드인 경우 인자로서 this 를 자동으로 넘겨준다고 해서. 그리고, attrib 이 private 이 아닌 public 이라 하더라도, 똑같은 질문이 가능할듯. --[1002]
  • Omok . . . . 2 matches
          * 그래픽을 썼을 때 저의 경우 코드라인수는 250line 정도였습니다. - 창섭
          * 그리고 이거 할때 중복된 코드를 많이 만드는 경우도 있는데 가능하면 중복되는 소스를 줄이면서 짜보세요.
  • OptimizeCompile . . . . 2 matches
         모든 최적화 작업은 시간 효율에 대하여, 혹은 공간 효율에 대하여 최적화를 하게 되는데, 밑의 각 섹션에 따라 분리 할 수 있다. 이 작업들은 서로 상호 보완적으로 이루어지거나 혹은 상호 배제적으로 이루어 질 수 있다. (e.g. latency 를 줄일 경우 코드 길이가 길어지거나 복잡도가 증가할 수 있다.)
         컴퓨터가 할 수 있는 연산 들은 각각 그 연산이 수행되는데 걸리는 시간의 차이가 있다. 연산에 복잡도에 의해서 이루어지는 현상인데, 극단적인 예를 들자면, shift 연산은 보통 2 클럭에 처리되는 반면에, 나누기 연산의 경우 80-90 클럭을 소모하게 된다.(i8088자료) 이런 연산에 대한 computation time 의 차이를 줄이는 최적화 방법을 strength reduction 이라고 한다.
  • OurMajorLangIsCAndCPlusPlus/print/이도현 . . . . 2 matches
          // 0.xxx 일경우 0 표시)
          // 0.xxx 일경우 0 표시)
  • OurMajorLangIsCAndCPlusPlus/signal.h . . . . 2 matches
          || SIGBREAK || Ctrl + Break 신호발생시 ||
          || SIG_SGE || signal gets error ||
          || SIG_ERR || signal요청을 받아들일 수 없는 경우에 발생 ||
  • OurMajorLangIsCAndCPlusPlus/stdlib.h . . . . 2 matches
         || void abort(void); || 비정상적인 프로그램 종료를 발생시킨다 ||
         || void exit(int status); || 정상적인 프로그램 종료를 발생시킨다 ||
  • PPProject/Colume2Exercises . . . . 2 matches
          시프트를 일반화시켜서 생각하고 문제에 접근했다. 하지만 풀리지 않았다. 책을 다시 읽고, 그림을 봐서 무엇을 잘 못 이해했는지 살폈다. 하지만 잘못 이해한 부분은 없었다. 시간이 지나고, 문제를 다시 읽으면 힌트를 얻지 않을까 하는 생각에 문제를 읽었다. 문제에서 최대공약수라는 말을 신경쓰지 않았다는 점을 발견했다. 최대공약수를 이용해서 결국 문제를 해결했다.
  • Pairsumonious_Numbers/김태진 . . . . 2 matches
          * 예제 케이스에 두가지경우 빼곤 다 되네요. 두 경우는 무한루프 =ㅅ= -[김태진]
  • ParametricPolymorphism . . . . 2 matches
         다름 아닌 다형성(Polymorphism)이라고 하지 않을까 싶다.
          //Error!
  • Polynomial . . . . 2 matches
          이 방법을 사용할때 발생할수 있는 문제점은 memory leakage (메모리 누수)이다. Java같은 경우는 쓰레기 수집기가 있지만 c 는 코더(-_-)가 일일이 사용되지 않는 자원을 회수해줘야 한다. 그렇지 않으면 그 자원을 다시 사용할 수 없게 된다.
          /* 문제점 : 다음과 같은 경우는 어떻게 처리해야 할까?
  • Postech/QualityEntranceExam06 . . . . 2 matches
          - 어떤 경우에 counting semaphore 를 쓰는지,,
         Dynamic Scoping 에서 Shallow Access 하는 경우에 상관 없는 키워드 발견하기.
  • PowerOfCryptography/이영호 . . . . 2 matches
          if(ret_buf >= (ceil(ret_buf)+floor(ret_buf))/2) // 반올림. 올림+내림/2보다 클거나 같을 경우
          ret = (int)ret_buf; // 내림일경우 여기서 저절로 내린다.
  • PowerOfCryptography/조현태 . . . . 2 matches
          두번째 소스.. 숫자가 커도 저장하고 연산할 수 있을...듯 하다..;;ㅁ;; ㅎㅎㅎ MAX_LONG의 값을 10으로 줄이고 테스트를 해서 2개 이상의 경우에도 돌아가는 것은 알겠는데... 3번째 4번째 예제의 수가 원체 커야지 말이다. 연산의 결과가 좀처럼 안나온다. 곱하기 루틴에서 계속 더하고 있는듯..;;ㅁ;;
          cout << "결과값에 1을 입력할경우 프로그램이 끝납니다.\n";
  • PreparedParticipantPattern . . . . 2 matches
         그들이 공부해야할 뛰어난 문학작품([지식샘패턴])이 있을 때 , 그룹에 동기부여된 진행자가 있을 때, 그리고 모두가 회의 전에 철저하게 준비할 때 사람들은 대화에서 가장 많은것을 배운다. 이 패턴이 어떻게 철저하게 준비하는 것을 의미하는것을 확인하고 그리고 사람들이 그것을 할 수 있도록 할 수 있습니다.
         '''개인들이 이전의 대화를 공부하지 않을 때, 그들은 대화에 아무것도 더하지 않거나 너무 많은 것을 더한다. 준비되지 않은 참여자는 주제를 벗어난 질문이나 기초적인 질문, 혹은 생산적인 연구보단 오해를 불러일으킬만한 생각을 하게하는 질문을 할 수도 있다.'''
  • PrimaryArithmetic/sun . . . . 2 matches
         단순히 사람이 덧셈을 하는 식으로 풀었다. 끝자리 부터 하나씩 더해가며, 올림수가 발생했을 경우 같이 더하는 방식을 이용했다.
         문제 풀이를 위해서 별다른 알고리즘이 아닌 현실에서의 덧셈 방법을 사용했고, 코드량이 별로 되지 않음에도 1시간이 걸린것은 도중에 msn으로 친구과 채팅을 하며 했기 때문이다. 본인이 느끼기에는 msn을 얼마 하지 않았던것 같은데 실제로는 시간이 꽤 지나있는걸 보면 아인슈타인의 상대성원리에 따라 시간이 흐름을 알 수 있다. 직장인의 경우 이것을 좀 더 일반화 해보면, '왠지 오늘 하루 일하기 싫다'라고 느껴지고, 휴가를 쓸 수 없을땐 근무중에 메신저를 하면 시간이 금방 감을 알 수 있겠다.
  • ProgrammingLanguageClass/Exam2002_1 . . . . 2 matches
          * Floating Point 변수의 경우 해당 값에 대해 근사값만을 표현한다. 그 이유는 무엇인가?
         나의 경우는 1. string (char array) 으로 애뮬레이션 한다. (단점도 썼음. 계산뒤의 메모리할당 문제와 실제 산술연산 계산을 위한 형변환시 cost가 많이 든다 등등) 2. long integer 2 개로 앞의 32 bit 는 유효숫자를, 뒤의 32bit 는 지수를 표현한다. (2^-31 ~ 2^31 * 2^-31 ~ 2^31 까지 표현된다라고 썼는데, 실제론 저 숫자들을 다 표현할 수가 없겠군. 2^31 1024 * 1024 * 1024 * 2 니까 약 10억. 즉, 자리수 표현도 10억 이후부터는 precision 유효숫자를 다 쓸수 없을테니) 아.. 풀고나니 잘못생각했군. 흑; --석천
  • ProgrammingPearls/Column5 . . . . 2 matches
          * 또한 Binary Search의 가장 중요한 전제 조건인 sort되었는가? 체크해주는 함수를 앞에다 써준다. 이 경우에는 search를 한번만 해주면 n + lg n 이렇게 될것이다. 하지만 sort되었는가 체크하는 함수는 한번만 해주면 되므로, search를 한 몇천,몇만번 돌리면 결국 lg n 에 수렴할 것이다.
          * 별거 없다. 그냥 배열을 생성한다음, for를 정해진 횟수만큼 돌려가면서 assert체크해준다. 끝이다.--; 이렇게 함으로써, 사이즈가 0, 1, 2의 제곱수, 2의 제곱수가 아닌수 모든 경우의 수를 테스트해볼수가 있다.
  • ProjectAR/CollisionCheck . . . . 2 matches
          * 그러자니 오브젝트마다 그림 크기에 맞는 2차원 배열을 가져야 한다. 어쩌면 비트맵을 읽어오면서, 그 비트맵이 메모리에 있을테니, 그걸 참조하는 방법도 있을듯 하다. 안된다 하더라도, 요즘 컴퓨터 메모리 남아도니까 별로 문제가 되지는 않을듯 싶다.
          일단 히트 판정이 날려면 주인공이 공격을 하게 됩니다. 그 때 발생하는 무기의 범위는 부채꼴이 되겠죠? 그렇게 때문에 오브젝트가 주인공의 위치와 무기의 거리사이에(각도는 제한된 상태) 들어온다면 히트 판정이 나게 되겠죠? 그러므로 정교한 히트 판정이 나기 위해서는 사각형 영역보다 부채꼴 형태가 더 적합하다고 생각합니다. 그리고 적의 충돌을 판정하기 위해서는 적은 최대한 둥근 모습으로 만든다면 해결이 어느정도 가능하다고 생각합니다. 둥그스름한 물체가 땅에 닿는 곳은 원형이 되겠죠? 그 원형을 판단하면 되지 않을까요? 어짜피 그려지는 곳의 머리가 주인공의 무기와 겹치는 동시에 친다면 더 부자연스러울꺼 같네요...
  • ProjectPrometheus/Iteration9 . . . . 2 matches
         검색 결과 없을 경우 에러
         local DB에 있는 책이 폐기 되어 번호가 사라진 경우 에러
  • ProjectSemiPhotoshop/SpikeSolution . . . . 2 matches
          // BMP 파일임을 나타내는 "BM" 마커가 있는지 확인
          // 메모리 핸들이 유효한지 확인
  • ProjectVirush . . . . 2 matches
         Trac을 이용해 [http://165.194.17.5/trac/aekae/timeline 프로젝트 진행상황]과 [http://165.194.17.5/trac/aekae/browser//ProjectVirush Source Code]를 확인할 수 있습니다.
          바이러스는 궁합이 맞는 경우에만 들어가 살 수 있다.
  • ProjectZephyrus/Client . . . . 2 matches
          노동의 양으로 생각해야 하는건 Engineering Task 가 아닌가요? 암튼 이번의 경우는 필수 기능 기준으로 잡아보긴 했습니다. (엄격하게 나눈건 아니긴 하지만요.~) --석천
         || 서버로부터 로그인 관련 리턴값 확인. 처리 || 0.5 || ○ (45분 이용) 6/5, 6/7||
  • ProjectZephyrus/ThreadForServer . . . . 2 matches
         InfoManager의 코드들의 경우 attribute에 직접 접근하는 부분이 너무많은듯 하다.
         이럴경우 디자인의 설명에 청자가 서로 팀이가 아니라 듣고 싶은 사람 모두로 지정할수도 있을 것이다.
  • PyIde/Exploration . . . . 2 matches
         unittest 모듈을 프린트하여 Code 분석을 했다. 이전에 cgi 로 test runner 돌아가게끔 만들때 구경을 해서 그런지 별로 어렵지 않았다. (조금 리팩토링이 필요해보기는 코드같긴 하지만.. JUnit 의 경우 Assert 가 따로 클래스로 빠져있는데 PyUnit 의 경우 TestCase 에 전부 implementation 되어서 덩치가 약간 더 크다. 뭐, 별 문제될 부분은 아니긴 하다.
  • PyOpenGL . . . . 2 matches
         2.3x 버전의 경우는 설치할때 NumericPython 과 numpy 등의 모듈들을 같이 설치해주어야 한다.
         새 버전의 [PyOpenGL]의 경우 메소드 이름이 약간 바뀌었다. xxxFuncCallback 함수 대신 xxxFunc 식으로 쓰인다. Nehe 의 코드 대신 [PyOpenGL] 인스톨시 같이 인스톨되는 Nehe Demo 프로그램 코드를 이용하기를 권한다.
  • PyServlet . . . . 2 matches
         servlet 클래스의 경우는 수정시 바로바로 적용이 되나, import 되는 모듈을 수정하는 경우 바로 적용이 되지 않는다.
  • QuestionsAboutMultiProcessAndThread . . . . 2 matches
          * 그럼 여러 개의 Thread가 존재하는 상황일 때, 하나의 Thread가 One Time Slice를 전부 사용하는 경우가 있는가??
          * 어느 바쁜 음식점(machine)입니다. 두 명의 요리사(processor)가 있는데, 주문이 밀려서 5개의 요리(process)를 동시에 하고 있습니다. 그 중 어떤 한 요리는 소스를 끓이면서(thread) 동시에 양념도 다지고(thread), 재료들을 오븐에 굽는데(thread) 요리를 빠르게 완성하기 위해 이 모든 것을 동시에 합니다. 한 명의 요리사는 특정시점에 단 한 가지 행위(instruction)만 할 수 있으므로, 양념을 다지다가 (context switching) 소스가 잘 끓도록 저어주기도 하고 (context switching) 다시 양념을 다지다가 (context switching) 같이 하던 다른 요리를 확인하다가, 오븐에 타이머가 울리면(interrupt) 구워진 재료를 꺼내어 요리합니다. 물론 두 명의 요리사는 같은 시점에 각자가 물리적으로 서로 다른 행위를 할 수 있으며, 하나의 요리를 두 요리사가 나눠서(parallel program) 동시에 할 수도 있습니다. - [변형진]
  • Randomwalk/조동영 . . . . 2 matches
          bool existZero = false; // 바퀴벌레가 모두 돌아다녔는지 확인할때 쓰일 bool형 값
          편하기야 하겠지만 남발하는건 좋지 않음. 특히 자료구조 숙제같은 경우에는 :( - [임인택]
  • RefactoringDiscussion . . . . 2 matches
         로직이 달라졌을 경우에 대한 검증에 대해서는, Refactoring 전에 Test Code 를 만들것이고, 로직에 따른 수용 여부는 테스트 코드쪽에서 결론이 지어져야 될 것이라는 생각이 듭니다. (아마 의도에 벗어난 코드로 바뀌어져버렸다면 Test Code 에서 검증되겠죠.) 코드 자체만 보고 바로 잘못된 코드라고 단정짓기 보단 전체 프로그램 내에서 의도에 따르는 코드일지를 생각해야 될 것 같다는 생각.
         ps. 현실에서 정말 모든 상태 공간/기계가 고대로 유지되는 리팩토링은 없습니다. 가장 대표적인 Extract a Method 조차도 모든 경우에 동일한 행동 유지를 보장할 수는 없습니다. 1+2가 2+1과 같지 않다고 말할 수 있습니다. 하지만 우리에게 의미있는 정도 내에서 충분히 서로 같다고 말할 수도 있습니다 -- 물론 필요에 따라 양자를 구분할 수도 있어야겠지만, 산수 답안 채점시에 1+2, 2+1 중 어느 것에 점수를 줄 지 고민할 필요는 없겠죠.
  • RenameThisPage . . . . 2 matches
         다음의 리스트들은 페이지 이름을 봤을때 어떤 일을 하는지 모르겠는 경우이나, 또는 ["페이지이름"] 규칙이 어겨진 경우이다.
  • ReplaceTempWithQuery . . . . 2 matches
         어느정도 수준에 오른 프로그래머일수록, 반복적으로 사용되는 값에 대해 임시변수를 사용하고 이러한 최적화(?)를 나름대로 수행하려 한다. 그러나, 이러한 미시적인 최적화는 결과적으로 거시적 최적화의 기회를 박탈하게 한다. 심지어 최악의 경우라도 임시변수를 다시 넣는 일은 쉽다(물론, 프로파일링 ' '''결과''' ', ' '''실제로''' ' 퍼포먼스에 심각한 문제를 주는 경우라면).
  • Reverse Engineering처음화면 . . . . 2 matches
         누구나 참여/확인/조언 가능.
         1. 프로그램이 왜 이렇게 짜여져 있는지 확인.
  • SOLDIERS/정진경 . . . . 2 matches
         중심으로 삼을 좌표를 찾는게 중요한데요, 저같은 경우 동적계획법을 통해 모든 경우를 살펴봤습니다.(정렬 후 선형 탐색)
  • STL/vector . . . . 2 matches
         vector<int>::const_iterator i; // 벡터의 내용을 변경하지 않을 것임을 보장하는 반복자.
          Iterator 들이나, 배열의 영역설정은 그 모호성을 배제하기 위해서, 마지막 자료형 + 1의 index 를 가지는 것을 상식으로 취급합니다. MFC, Java 등 여타 라이브러리들의 index접근 하는법 마찬가지 입니다. 익숙해 지는 수 밖에 없지 않을까요? --NeoCoin
  • ScheduledWalk/창섭&상규 . . . . 2 matches
          * 여정이 끝났는지 확인할 수 있다.(IsFinished)
          * 판의 모든 곳에 자취가 남았는지 확인할 수 있다.(IsAllCellsPassed)
  • Self-describingSequence/1002 . . . . 2 matches
         문제는, 1000000000 의 경우에 대해서 답이 나오는 시간이 엄청나게 걸린다는 점이다. 이에 대해서 어떻게 할 것인가 고민,
         수열의 값이 늘 증가한다 할때 다음번에 검색하는 경우 앞에서 검색했던 그룹 아니면 그 다음 그룹임을 생각하게 됨.
  • SeminarHowToProgramIt/Pipe/VendingMachineParser.py . . . . 2 matches
          raise NotImplementedError
          except ValueError:
          self.outstream.write(self.lexer.error_leader()+msg+'\n')
  • SeparatingUserInterfaceCode . . . . 2 matches
         이는 UI 부분에만 적용되지 않는다. 일종의 InformationHiding 의 개념으로 확장할 수 있다. 예를 들면 다음과 같이 응용할 수 있지 않을까.
         너무 이상적이라고 말할지 모르겠지만, DIP 의 원리를 잘 지킨다면(Dependency 는 Abstraction 에 대해서만 맺는다 등) 가능하지 않을까 생각. 또는, 위에서의 WIMP를 그대로 웹으로 바꾸어도. 어떠한 디자인이 나올까 상상해본다.
  • SilentASSERT . . . . 2 matches
         그렇다고 Output 모드로 ASSERT를 쓰면 Fail 나는 것을 쉽게 확인 하기 어렵고, 또 수많은 TRACE 들 덕분에 분간이 되지 않습니다.
         그래서 Output 윈도우에 ASSERT 문법을 넣고, 칼라를 넣어 쉽게 확인하게 하면 어떨까 합니다.
  • Slurpys . . . . 2 matches
         4. 위의 경우가 아니면 스럼프가 아니다.
         4. 위의 경우가 아니면 스림프가 아니다.
  • SmalltalkBestPracticePatterns/DispatchedInterpretation . . . . 2 matches
         때때로, 그러나, 한 객체의 정보는 다른 객체의 행위에 영향을 미칠 것이다. 정보의 사용이 단순할 경우, 또는 제한된 정보에 기반해서 선택이 가능할 경우에는 인코딩된 객체에게 메시지를 보내는 것이 충분히 가능하다. 이와 같이, 부울린 값들은 두 클래스의 하나의 인스턴스로 표현되어진다는 사실은, True 그리고 False, 메시지 #ifTrue: ifFalse:. 뒤로 숨겨진다
  • SoftIce . . . . 2 matches
          * 그리고 설정에서 마우스 사용은 None 으로 하고, Video 테스트는 꼭 해야 함. 그리고 SoftIce 실행은 Boot 로 해서 안될 경우에 Manual 로 하기 바람.
          * 만약 설치하다가 이상해서 재 부팅시 시커먼 화면만 나오고 안 넘어갈 경우,, 다시 부팅후 화면 하단에 ESC 눌러라는 글씨 나올때 ESC 눌러서 SoftIce 실행을 취소해야함.(ESC 두번 누르면 취소됨)
  • SolarSystem/상협 . . . . 2 matches
          MessageBox(NULL,"Release Of DC And RC Failed.","SHUTDOWN ERROR",
          MessageBox(NULL,"Release Rendering Context Failed.","SHUTDOWN ERROR",
          MessageBox(NULL,"Release Device Context Failed.","SHUTDOWN ERROR",
          MessageBox(NULL,"Could Not Release hWnd","SHUTDOWN ERROR",
          MessageBox(NULL,"Could Not Unregister Class","SHUTDOWN ERROR",
          ,"ERROR",MB_OK|MB_ICONEXCLAMATION);
          MessageBox(NULL,"Program Will Now Close","ERROR",MB_OK|MB_ICONSTOP);
          MessageBox(NULL,"Window Creation Error",
          "Error",MB_OK|MB_ICONEXCLAMATION);
          MessageBox(NULL,"Can't Creat A GL Device Context","ERROR",MB_OK|MB_ICONEXCLAMATION);
          ,"ERROR",MB_OK|MB_ICONEXCLAMATION);
          ,"ERROR",MB_OK|MB_ICONEXCLAMATION);
          ,"ERROR",MB_OK|MB_ICONEXCLAMATION);
          ,"ERROR",MB_OK|MB_ICONEXCLAMATION);
          ,"ERROR",MB_OK|MB_ICONEXCLAMATION);
  • TddWithWebPresentation . . . . 2 matches
         이렇게 될 경우 테스트 코드는 다음과 같다. 여차하면 테스트 코드에서 presenter 를 사용할 수도 있었다. (어차피 ViewPageAction 역할을 잘 하느냐가 중요하니까, 거기에 붙는 HTML 들이 어떠하냐가 중요하진 않을것이다.)
  • Telephone . . . . 2 matches
         미국에서는 이발소 TV 광고의 경우 전화번호와 동시에 'HAIRCUT' 이라는 문구를 보여준다. 'HAIRCUT' 은 전화기의 번호의 각 영문에 대응되기 때문에 전화번호로 번역이 가능하다.
         즉, 'HAIRCUT' 의 경우 밑의 전화기 자판을 보면 H 는 4, A 는 2 ... 등에 각각 대응되므로 424-7288 이 된다.
  • TellVsAsk . . . . 2 matches
         아마 당신은 이렇게 말할지도 모른다. "나는 그런 코드를 작성한 적이 없어!" 하지만, referenced object 의 값을 조사해서 그 결과값에 따라 각각 다른 메소드를 호출하는 식으로 적당히 구현하며 얼머무리는 경우는 흔하다.
         (ResponsibilityDrivenDesign) 그러한 경우, 당신은 당신에게 객체의 상태를 알리도록 질의문을 작성하는 대신 (주로 getter 들에 해당되리라 생각), class 들이 실행할 수 있는 '''command''' 들을 자연스럽게 발전시켜 나갈 것이다.
  • TestDrivenDevelopmentBetweenTeams . . . . 2 matches
         일단 각 팀들끼리 TDD 를 하면서 팀들간의 대화를 통해서 일종의 공통 interface 를 빼낼 수 있다. 일단은 일종의 MockObject 로 가짜값을 채워서 테스트를 통과시킨뒤, 실제 Object 가 구현되면, 천천히 하나씩 실제 Object 의 interface 를 끼워가면서 테스트를 통과하는지를 확인한다. 그리고 최종적으로 실제 Object 로 MockObject 를 대체시킨다.
         Java 의 경우 inteface 키워드나 abstact class 를 이용하여 interface 를 정의할 수 있다. 팀의 구성원끼리 Pair를 교체한 뒤 interface를 정의하면 더욱 효과적이겠다.
  • TheGrandDinner . . . . 2 matches
         각 팀에 속한 멤버들의 수(경시대회 참가자, 감독, 후보 선수, 참관인 모두 포함)와 각 테이블에 앉을 수 있는 사람 수가 주어졌을 때 처음에 정한 규칙대로 모두 앉을 수 있는지를 결정해야 한다. 규칙대로 앉을 수 있다면, 좌석 배치 방법을 출력한다. 여러 방법으로 배치할 수 있는 경우에는 아무 방법이나 출력해도 된다.
         각 테스트 케이스에 대해 좌석을 배치할 수 있으면 1을, 그렇지 않으면 0을 출력한다. 배치가 가능한 경우에는, 그 밑으로 M줄에 걸쳐 좌석 배치를 출력하는데, i번째 줄에는 i번째 팀 멤버들이 앉을 테이블 번호(1에서 N까지)를 출력한다.
  • TkinterProgramming/Calculator2 . . . . 2 matches
          except SyntaxError:
          return 'Error'
  • TkinterProgramming/SimpleCalculator . . . . 2 matches
          except ValueError:
          display.set("Error")
  • Trac . . . . 2 matches
          * 흐흐. gforge 보다는 좀 더 작은 단위의 프로젝트 관리툴임. 위키와 통합되어 있음. (모인모인에 이와 유사한 플러그인을 만들 수도 있지 않을까 하는 생각도.)
          * Perky 님이야 개인 플젝 말고도 하시는게 많으시니..; [1002] 의 경우 지금 랩에서 SVN 설치하고 랩 선배랑 같이 작업중. (주로 VC++ 프로젝트) 요새 개인 플젝 할 짬이 안나서 ZP 에 프로젝트를 못올리네. 암튼. 틈나는대로..~ --[1002]
  • UniversalsAndParticulars . . . . 2 matches
         자바 스윙에서 어떤 API를 통해 어떻게 그림을 그리는지를 가르치기 보다, Event Driven Programming을 가르치되, 스윙이라는 맥락을 방편으로 이용해 가르친다. 해당 프레임웍의 API가 복잡한 경우, 학습자들은 오히려 그 API를 외우고 공부하느라 더 중요한 것을 잊을 수 있다. 따라서 이런 경우 가르치는 사람이 미리 좀 더 추상적인 차원의 레이어를 만들어(이를 교육학에선 스캐폴딩이라 한다) 제공할 수 있다.
  • UpdateWindow . . . . 2 matches
         재귀함수가 실행될때마다 Invalidate()를 호출하도록 해 두었는데. 화면 갱신은 재귀함수가 끝난 경우에만 하고 있었다.
         [상규]군에게 물어 해답을 찾았다. Invalidate()함수는 다음 WM_PAINT메세지가 왔을때 화면을 다시 그리도록 명령하는 함수이다. 재귀나 반복문을 수행하는 동안에는 WM_PAINT 메세지가 발생하지 않기 때문에 강제적으로 WM_PAINT메세지를 발생시켜 주어야 하는데, 그 함수가 UpdateWindow()함수이다.
  • VacationOfZeroPage . . . . 2 matches
          * 내년 학술제 작품 전시회를 대비해서(제로페이지 전시회 대신에 학술제에 작품을 내는 식으로 한 만큼.) 각자 개인으로 만들던지, 팀으로 만들던지 아니면 여러개 만들던지할 계획을 말하고, 그걸 겨울 방학때 만드는것도 좋을거라고 생각합니다. 뭔가 머리로만 생각했던걸 실제로 만드는건 가슴뛰는 일이지 않습니까~, 그리고 개인적으로 지금 1학년들도 충분히 멋진걸 만들 수 있는정도가 되었다고 생각합니다.(노력과 공부만 하면..-_-;) 또 1학년들이 뭔가 만들어 봐야 프로그래밍의 재미도 만끽하지 않을까 싶습니다.(솔직히 뭐 만들고 싶은거 만드는게 제일 재밌습니다. -_-;)
          * TOEFL 의 경우 시사 영어사이에서 나온 TOEFL 책보다는 Barron 이라고 하는 토플 책이 있습니다. 물론 시사도 좋지만. 문법에 대하여 어느정도 자신이 있는 상황이라면 Barron 의 TOEFL 책도 좋을겁니다. 번역서는 없고 원서만 있지만 추천할 책입니다.
  • VoiceChat . . . . 2 matches
         다자간에 프로젝트를 진행할때 같은 장소에서 작업을 하기 힘든 경우 음성채팅을 이용하면 그나마 숨통을 틀 수 있다. MSN 메신저를 비롯하여 음성채팅을 지원하는 여러 메신저의 경우 1:1 만 지원한다. 아래의 프로그램을 사용하면 다자간 음성채팅을 무료로 할 수 있다.
  • WIBRO . . . . 2 matches
         휴대폰이용료 + 가정인터넷 + 와이브로 가정에 너무 큰 부담이 되므로 휴대폰에 결합하지 않을까라는 생각을 하게 만든다.
         * 일부 핸드폰이 휴대인터넷 단말기로 교체될 수도 있이나 핸드폰이나 PC, 노트북 잠식되지는 않을겁니다.
  • WebMapBrowser . . . . 2 matches
          * 웹의 각 페이지들, 사이트들이 노드가 되어서 각 링크가 엣지가 되는 형식으로 링크드 노드들 모습으로 보여준다. 이렇게 하였을 경우에 기존 웹 브라우저에서는 단순히 1단계 앞의 링크로만 이동하게 되지만 이렇게 할 경우 몇단계앞의 링크로도 바로 이동 할수 있게 된다. 그리고 각 링크들이 어떻게 연결되어 있는지 보기도 편해진다.
  • WhatToProgram . . . . 2 matches
         학교에서 숙제로 내주는 것들이란 정말 숙제를 위한 숙제인 경우가 있다. 아니, 꼭 그렇진 않더라도 나는 뭔가 내 페이스에서 스트레스 없이 내가 원하는 것을 만들어보고 싶다. 어찌되었건 프로그램을 잘하려면 프로그램을 자주 해봐야 한다고 말하지 않는가. 그럼 도대체 무엇을 프로그램할 것인가?
         이 프로그램을 개발해서 일주일이고, 한달이고 매일 매일 사용해 봐야 한다. 일주일에 한 번 사용하는 프로그램을 만들기보다 매일 사용할만한 프로그램을 만들라. 자신이 하는 작업을 분석해 보라. 무엇을 자동화하면 편리하겠는가. 그것을 프로그램 하라. 그리고 오랜 기간 사용해 보라. 그러면서 불편한 점을 개선하고, 또 개선하라. 때로는 완전히 새로 작성해야할 필요도 있을 것이다(see also [DoItAgainToLearn]). 아마도 이 단계에서 스스로를 위한 프로그램을 작성하다 보면 아이콘을 이쁘게 하는데 시간을 허비하거나, 별 가치없는 퍼포먼스 향상에 시간을 낭비하지는 않을 것이다. 대신 무엇을 프로그램하고 무엇을 말아야 할지, 무엇을 기계의 힘으로 해결하고 무엇을 여전히 인간의 작업으로 남겨둘지, 즉, 무엇을 자동화할지 선택하게 될 것이다. 또한, 같은 문제를 해결하는 여러가지 방법(기술, 도구, ...) 중에서 비용과 이익을 저울질해서 하나를 고르는 기술을 익히게 될 것이다.
  • WinampPlugin을이용한프로그래밍 . . . . 2 matches
         winamp 의 경우 다양한 plugin 를 지원한다.
          // 버전이 다른 경우에 대한 처리.
  • WorldCupNoise/권순의 . . . . 2 matches
         === Presentation Error Version ===
          * 근데 Presentation Error가 나는데 -_-;; Terminate the output for the scenario with a blank line 이 부분을 내가 잘못 이해하고 있어서인거 같기도 하네염 -ㅅ-;; 에잇,, Visual Studio에서 돌리면 돌아는 갑니다. -ㅅ-
  • Xen . . . . 2 matches
         젠(Xen)은 오픈소스 기반의 가상화 SW다. 젠은 하나의 컴퓨터에서 여러 종류의 운용체계(OS)를 사용할 수 있게 하는 SW로 한 가지 단점은 OS를 수정해야 한다는 점. 그러나 올해 공개될 인텔의 밴더풀(vanderpool)이나 VT 기술을 적용할 경우 OS 수정이 필요하지 않을 것으로 보여 빠른 확산이 예상된다.
  • Yggdrasil/가속된씨플플 . . . . 2 matches
          * [Refactoring]은 중간중간에 계속 해주는 것이 도움이 되었습니다. 계속 다르게 진행하면 소스를 통합하기가 매우 힘들어 지죠. NoSmok:문서구조조정 마찬가지 같습니다. [위키요정]에서 말하는 정원일과 비슷하지 않을까요? 쓸말이 없다면, 지금 페이지들을 지우는 것도 좋은 방법입니다. 어차피 차후에 '내가 했다.'라는 것은 자신만이 알면 되지요. --NeoCoin
          * 그렇군요. 확실히 그런 하나의 완전한 페이지가 있는 편이 좋겠네요. 하나로 정리할 때는 역시 이전의 페이지를 작성한 사람과 상의를 해서 해야겠죠? 아니면 그냥 제가 추가하고 싶은 내용을 추가하면 됩니까? 후자의 경우는 '기본적인 사실인데 제가 잘 모르고 있던 개념' 같은 건 쓰기가 좀 곤란하겠군요. --영동
  • YouNeedToLogin . . . . 2 matches
         제 생각은 '' 아무나 어떠한 제한 없이 수정할수 있다 '' 입니다. 로그인 자체가 필요한 이유가 현재 두가지를 드는데, 보기좋고 편리한 RecentChanges 와 이상한 형태의 새페이지 개설을 막자입니다. 전자는 저 자신은 그리 크게 신경 쓰지 않는 일이라, 여태 생각하지 않았던 것입니다. 후자는 인간이 그러는 것이라면, 로그인 이후에도 그러한 실수는 배제할수 없지 않을까요?
          ''ZeroWiki는 아무나 어떠한 제한없이 로그인할 수 있습니다. 전 후자의 경우는 위키 초보자가 저지르는 실수라고 생각합니다. 로그인을 할수 있는 사용자는 그런 실수를 하지 않으리라 봅니다. 그리고 다시 말씀드리지만 그러한 작은 불편 때문에 YouNeedToLogin을 주장하는 것은 아닙니다. --["이덕준"]''
  • Z&D토론/학회명칭토론백업 . . . . 2 matches
          *상민이 의견에 전적으로 찬성..음 내가 떠들자리인지는 잘 모르겠지만, 이름 문제는 둘중 하나의 이름을 택하던지 아니면 새로 만들어라. Z&D. 이런 식으로 만들지 말고, 이건 한배를 탄 사람들의 이름이라고는 볼 수 없다. 단지 서로의 이익을 위해 잠시 손을 잡은 의미로 밖에는 느껴지지 않는다. 계속 후배를 받을거라면 모든 후배들이 물어볼꺼다 이름의 유래가 뭐예요? 하면 다시 ZP와 Devils의 합침이라는 의미를 설명해야될꺼고 그것은 '단일'이 '연합'의 의미를 가지는지 혼란스럽게 할 것이며, 다음에 분열의 원인이 될 수 있으리라고 여겨진다. 지금 이름 때문에 서로의 입장을 치열하게 대립된다면 아예 합치지 않는게 좋을 것 같다.. (또 아무런 입장의 대결도 없다면 합치지 않는게 좋을 것 같다. 첫 단추를 잘 꿰어야 하듯이 지금 이렇게 서로 논의조차 이루어지지 않는다는건 서로의 불만을 감추어 놓는 것일 것이고 이건 '+'가 '-'로 바뀔 수 있게 되거나 최악의 경우 다시 분열의 심지로 남을 수 있으리라 생각된다.) 서로의 입장이 너무 팽팽하다면 새로운 이름을 찾는게 가장 나을 듯하다. 하지만, 이것 역시 최후의 카드이다. --희록
          * 이름을 새로 만든다.. 정말 그렇네요. X & X 이런 식은 통합이 아니라 연합의 색체를 강하게 띄고 있네요. 다시 분열할 여지를 남겨놓는 통합... 새로운 이름을 만든다면 정말 고심해서 만들겠네요. 기대됩니다. 어떤 이름일지... 물론 이것역시 의견조율이 안 될경우의 마지막 방법이 될테지만요. 다른 선배님들은 어떻게 생각하실지 궁금합니다. --["창섭"]
  • ZPBoard/Diary . . . . 2 matches
          * 암호 확인검사
          * [[HTML(<strike>암호 확인검사</strike>)]]
  • ZPHomePage/레이아웃 . . . . 2 matches
         가로크기 - 최대 1024, 세로크기 - 제한없음(메인의 경우에는 스크롤바가 없어야된다고 생각해요 --[강희경])
          * 각종 서브메뉴(예를 들어 게시판의 경우만 해도 4개임)는 어디에 표시할 것인가? 로그인 부분이 너무 큰거 아닌가? 공지사항을 고정시켜서 띄울 필요가 있을까? --[곽세환]
  • ZeroPageMagazine . . . . 2 matches
          프로토타입을 만든다는 것이 틀을 정한다는 의미가 아닌가요? 틀을 만들어 놓고 하면 짜임새가 있겠지만 그것에 따라야 한다는 관념 때문에 원고를 작성하는 사람의 입장에서는 그 능률이 떨어지지 않을까라는 의견이었습니다. 예를 들어 저번에는 이런 것을 조사하고 싶어서 프로토타입으로 제출했었는데, 시간이 지나니까 또는 조사를 하다 보니까 영 아니다 싶은 경우가 있을 수 있겠죠. 혹시 제가 프로토타입에 대해 잘못 이해하고 있을수도 있겠다는 생각이 드는군요. 지적해 주세요.
  • ZeroPageServer/Log . . . . 2 matches
          ''일단 쉘에서 직접 실행해 보고, {{{~cpp tail -f /etc/httpd/logs/error.log }}}를 해놓고 웹으로 실험해 보길. 그리고 cgi-handler 설정 확인해 볼 것. python이라면 cgitb를 써볼 것. --JuNe''
          ''간단한 resin log analyzer를 만들어두었습니다. admin 안쪽 RLA.jsp로 확인바랍니다. 참, resin이 root 계정으로 동작하던데, 권한을 바꾸길 바랍니다. (권한을 바꿔줄때, 그 부산물 - jsp가 컴파일된 자바 소스나 클래스등 - 도 함께 권한을 바꿔줘야 합니다.)''
  • ZeroPageServer/계정신청상황 . . . . 2 matches
         '''계정 정보 정보 확인'''
          하면 자신의 정보가 올바른지 확인할수 있습니다.
  • ZeroPage회칙 . . . . 2 matches
          1. 본 학회의 명칭은 ZeroPage 이며 어떠한 경우에도 이 조항을 바꿀 수 없다.
          4-1. 정모를 3회 연속 불참하거나 불참시 연락 부재일 경우.
  • ZeroWikiVsOneWiki . . . . 2 matches
         제 생각에 결과는 조금 부정적이었던 것 같네요. 우선 원위키에 새로운 페이지가 많이 안 올라오는 데다가, 페이지가 만들어져도 참여를 잘 안 하게 된달까... 그래서 일단 본래 목적대로 새로운 규칙을 만들며 익숙해지자는 취지는 이루지 못 한거 같네요. 그래서 다시 제로위키 하나만으로 돌아가는 것이 낫지 않을까요? 여기서 갑자기 참여가 많아지리라고는 기대할 수가 없을 것 같네요. -[영동]
         OneWiki 의 목적중, 신입 회원분들이 ZeroWiki를 쓰면서 그간 쌓여 있는 것들을 보면서 짖눌린 느낌을 받지 않을까 해서 였습니다. ZeroWiki는 내부 포멧이나, 내용이나 암묵적으로 무거움을 가지고 있다는 생각이 드는 걱정으로 OneWiki를 열고 새 인원들의 원할한 실험의 장으로서 그 역할을 하기를 바랬던 것이지요.
  • [Lovely]boy^_^/영작교정 . . . . 2 matches
         === 누가 이곳에 마지막까지 있었는지 확인하는 것은 불가능하다. ===
         === 나는 그 같은 불쾌한 싸움후에 떠나지 않을수 없었다. ===
  • apache/mod_python . . . . 2 matches
          * [ftp://ring.aist.go.jp/archives/net/apache/dist/httpd/modpython/win/] : 윈도우즈 환경에서 Apache 와 연동해서 설치할 경우에 왼쪽 링크 참고. 특히 주의할 점은 Apache 버전 자신의 것과 맞는 것으로 다운 받아야 함.(안그럴 경우 아파치 서버 시작 못함)
  • callusedHand/books . . . . 2 matches
          프로그램에 치명적인 버그가 있을 때 책임지고 고쳐 줄 사람이 없기 때문에 오픈 소스 개발 방식은 위험하다는 주장도 오픈 소스 개발 방식에 대한 오해에서 비롯된 것이라고 생각합니다. 위에서 말했지만 오픈 소스 개발 방식은 수많은 소프트웨어 개발 방법 중 하나 일 뿐입니다. 기존의 많은 오픈 소스 프로젝트가 개발자들의 취미, 재미라는 동기에서 비롯되었기 때문에 사후 관리가 미미하고 개발자들이 개발을 포기하는 경우 엔드 유저는 피해를 볼 수 밖에 없었던 것입니다.
          요구 사항 분석, 시스템 디자인, 세부 디자인 과정이 구체적으로 진행되지 않거나 문서화가 이루어 지고 있지않는 점입니다. 이는 프로그램의 유지보수, 재사용 측면에서 볼 때 심각한 문제로 한 프로그램을 개선시키고자 하는 개발자가 있을 때 디자인에 관한 문서가 없으면 많은 시행 착오를 겪을 수 밖에 없으며. 좋은 코드들이 그냥 버려지게 되는 경우가 많아 집니다. 이것들은 분명히 낭비라고 볼 수 있습니다. 그러므로 문서화 할 필요가 있습니다.
  • eclipse디버깅 . . . . 2 matches
         프로그램을 한 단계 진행하되, 메쏘드 호출부라면 실행 포인트를 메쏘드 안으로 옮긴다. 호출하는 메쏘드의 내부 동작을 확인하고 싶을때 사용한다.
         에디터에서 커서가 위치한 곳까지 실행한다. 브레이크포인트를 새로 추가하지 않고도 코드 내 임의의 위치로 실행포인트를 옮기고 싶을 때 유용하다. 실행되지 않을 부분을 선택한 상태에서 Run to Line을 실행시키면 프로그램이 끝까지 진행돼 버릴 수 있으므로 주의해야 한다.
  • html5/form . . . . 2 matches
          * HTML5 의 Canvas를 지원하지 않는 IE8 이전 버전을 위해 ExplorerCanvas(http://code.google.com/p/explorercanvas/) 라이브러리가 제공되듯이 HTML5 확장 폼을 지원하지 않는 브라우저의 경우 WebForm2 라이브러리를 사용할만 하다
          * {{{<input type=email>}}}에 입력된 값이 이메일 패턴과 다를 경우 폼은 전송되지 않고 에러 메시지를 표시해 준다.
  • iruril/도자기토론 . . . . 2 matches
         부가적으로 붙어야 하지 않을
         앞으로 도예문화가 더 발전하고 보편화 됬으면 좋겠다 라고 끝내도 되지않을가..
  • zennith/MemoryHierarchy . . . . 2 matches
          순차적으로 구성된 데이터의 흐름이 필요한 경우가 있다. 그러므로, 한번 하위 계층에서 데이터를 가져올 때, 연속된 데이터의 unit 을 가져올 경우, 순차적인 다음번에 위치한 데이터가 요구될때 하위 계층에 다시 접근하지 않아도 된다.
  • ★강원길★ . . . . 2 matches
         어제같은 경우엔 ... 책 보려다 잠들었다니깐 ㅎㅎ
         일어나니 4시.. 그런 쉣한 경우가 ㅎㅎ 그냥 윤리며 C 며 깨끗하게 붙여넣어줬지 ^^
  • 같은 페이지가 생기면 무슨 문제가 있을까? . . . . 2 matches
          * 논의를 읽다 보니 새로 생각나서 적어봅니다. 중복 페이지가 생긴다면 발견자가 고칠 때 사람마다 기준이 달라서 한번에 해결이 되는 것이 아니라, 이사람은 이렇게 고치고 저사람은 저렇게 고쳐서, '''쉽게'''정리가 안 되지 않을까 싶네요 - [Leonardong]
          앞에서도 썼듯 ''페이지를 생성할 때, 검색을 자동으로 해준다. 그래서 검색 결과를 보여주고 페이지를 새로 만들지, 아니면 원래 페이지에 덧붙여서 쓸 지 사용자가 결정하게 한다. 그러다면 검색 결과를 무시하지 않는 한, 중복 페이지가 줄어들지 않을까''라는 생각이 기본입니다. 검색범위를 페이지 이름으로 할지 전체 글을 대상으로 할 지는 생각을 못 해 보았지만요. 페이지를 손으로 고치는 방식을 대체할 것은 생각 못했지만, 제가 생각한 방식은 페이지를 만들기 전에 할 수 있으므로, 페이지를 만들고 나서 해결하는 '''아래에서 위로''' 방식과 혼합해서 쓸 수 있다고 생각합니다. 써 놓고 보니 페이지 이름하고는 빗나간 이야기이긴 하지만 어떻게 손이 한 번이라도 덜 가는 구조를 만들까 하다 보니 이런 글을 썼습니다.-[Leonardong]
  • 객체지향분석설계 . . . . 2 matches
          * 대안흐름 : 기본 사용 시나리오중 분기가 발생할 수 있는 경우
          * 예외흐름 : 기본 사용 시나리오중 예외가 발생할 수 있는 경우
  • 권영기/web crawler . . . . 2 matches
         except URLError, e:
          * os.mkdir(path[, mode]) - Create a directory named path with numeric mode mode. If the directory already exists, OSError is raised.
          http://stackoverflow.com/questions/8046667/vpython-error-on-ubuntu-11-10
  • 기본데이터베이스 . . . . 2 matches
         Delete, Modify, Search 경우 자료 없으면 Can't find 라고 출력
         검색키는 ID, name, tel로 하며, 자료가 복수일 경우 해당자료를 전부 출력
  • 나를만든책장관리시스템 . . . . 2 matches
          * 현재 대출 가능 여부 확인 가능하다.
          * 사용자는 자신의 대출 상태 확인 가능.(상태, 남은 날 등등)
  • 날다람쥐 6월9일 . . . . 2 matches
         그리고 printf("%d", a); 라는 명령어를 통해 바뀐 것을 확인할 수 있다.
         하지만 포인터를 왜'쓰는지 잘 모르는 경우가 많다.-_-;
  • 논문번역/2012년스터디/김태진 . . . . 2 matches
          다음 두 이론들은 한 집합에 대한 선형 의존성이 자동적인 특별한 경우를 지칭한다. 더욱이, 이론8은 뒤 단원들에서의 동작을 초래하는 핵심일 것이다.
         섹션 1.4에 있는 이론 5는 A가 m*n이면 x->Ax로의 변형은 모든 스칼라양 c와 Rn에 있는 모든 u,v에서 A(u+v) = Au + Av 와 A(cu)=cAu 임을 보여준다. 이러한 성질들은 선형대수학에 있는 변환에서 가장 중요한 성질임을 확인한다.
  • 대학원준비에대한조언 . . . . 2 matches
         여러명이 모여서 스터디를 한 지도 삼 주가 다 되어간다. 같이 준비하면서 때로는 너무 사소한 것에 매달리는 것이 아닌가 싶을 정도로 한 부분에서 넘어가지 못하는 경우가 있다. 한참을 이야기해서 결론을 내보니 이미 말하던 도중에 나왔던 이야기였거나 책을 보면 알 수 있는 내용인 경우도 있다. 하지만 그렇게 해서도 결론이 나지 않는 문제들이 있었고 [대학원준비06] 팀은 교수님께 찾아가서 질문을 했다.
  • 데블스캠프2002 . . . . 2 matches
          형이 셈나 해주시면 신입생 보다 재학생 참여율이 더 높지 않을까나...^^;;; --재동
         머리쓰는 문제도 중요하지만... 여러가지 분야를 조금이나마 경험하게 해주는것도 필요하지 않을까여..? 윈도우즈 에플리케이션이 어떻게 돌아가는지 간단히 소개시켜 준다든지... Little Man Computer 같은 것을 통해 컴퓨터 내부의 동작 원리를 설명해 준다든지.. Embedded System을 간단히 소개시켜 줘서.. 휴대전화나 가전제품, 계산기 등도 프로그램이 들어간다는것을 알게 해준다든지 등........ --상규
  • 데블스캠프2004 . . . . 2 matches
          * 벌써 2004년도 DevilsCamp 를 시작할 때가 되었군요..^^; 하하.. 미안한 느낌만 드는건 왜일까요;; 뭐.. 그건 그렇다 치고 허접하지만 의견하나 내도 될련지... DevilsCamp는 참여하는 그 당시도 중요하지만 끝나고 나중에 "아. 그 때는 이렇게 했었지."라는 생각을 하면서 전의 내용을 확인하는 것도 중요하다고 생각합니다. 그렇기 위해서 필요한게 다시 한번 돌아보는 일입니다. 그 주제가 끝났다고 그냥 지나가는 것이 아니라는 거죠. 뭔가 부족한 것은 다시 한번 확인해서 고쳐도 보고 다르게도 만들어보고 또 다른 사람들과 비교도 하는 과정이 그대로 위키에 체계적으로 정리가 될 때 나중에 더 큰 재산이 된다는 것입니다.^^; 이상 허접한 의견이었습니다. 많은 테클 부탁드립니다.(답변은 못올림;;) -[상욱]
  • 데블스캠프2004/금요일 . . . . 2 matches
          * mouseClicked 메소드 -> 메우스를 클릭했을 경우 작동
         ===== 마우스를 클릭했을 경우 paint 함수를 호출 =====
  • 데블스캠프2005/RUR_PLE/조현태 . . . . 2 matches
         여러가지 환경에서 테스트를 수행하였으며, 문제가 있을경우 [조현태]페이지에 올려놓으면 빠른시일내에 해결하도록 노력하겠습니다.
         파일을 copy/paste하는 과정에서 중간중간에 빈 줄이 생겼는데, 일부 삭제하였으나 남은 것이 있을 경우 지우고 사용해야 합니다.(단 함수와 함수사이는 아닙니다.)
  • 데블스캠프2005/월요일 . . . . 2 matches
          자신의 코딩환경에 맞게 컴퓨터를 준비하고 컴파일을 하면서 생길지도 모르는 의외의 오류나 시스템 이상을 확인하는 검사가 일차적인 목적
          2시간에서 3시간... 되지 않을까??
  • 데블스캠프2006/준비/목요일 . . . . 2 matches
          * 순서는 객체지향이 먼저 나와야 하지 않을까? 아무래도 콘솔에 익숙한 상태니까 하던거 그대로 나가는게 낫지 않을까 싶네 - [창섭]
  • 데블스캠프2009/화요일후기 . . . . 2 matches
          * '''강소현''' - API가 뭔지, 그걸로 어떠어떠한 프로그램을 만들 수 있는 지 알게된 수업이었어요. 왠지 마지막 피아노...최종귀축 여동생 플랑도르 같은 거도 연주하게 할 수 있지 않을까하는 느낌이 ㅇㅁㅇ(!) 직접 연주하는 프로그램인 거같긴 했지만ㅋㅋ;;
          * [송지원] - 학우들이 OOP를 배우기 좀 더 좋지 않을까 싶다. 컴공에서 죽어라 부딪치며 삽질하고 어려워하는 개념에 대해 정말 쉽고 재밌게 설명해주는 형진이의 내공은 역시 최고인것 같다. 시간이 부족한게 아쉬운건 어쩔 수 없는듯.
  • 데블스캠프2010/둘째날/후기 . . . . 2 matches
          * 개인적으로는 직접 게임의 코드를 짜는 모습을 보거나 라이브러리 함수를 사용하는 것을 좀 더 많이 볼 수 있었으면 좋지 않았을까 하는 아쉬움이 컸습니다. 그래도 이런 식으로 외부 라이브러리를 받아서 VS의 설정을 하고, 개발환경을 갖추는 것도 하나의 큰 공부가 되지 않았나 싶습니다. 그리고 소스코드 자체도 하나씩 뜯어보면 알아보기 쉬운 디자인으로 되어 있어서 조금 더 공부를 할 동기가 될 수 있지 않을까 싶습니다. - [서민관]
          * 1학년 여름방학때부터 반복적으로 들었던 내용인데 (당연한 말이지만) 처음 비슷한 내용을 들었을 때보다 지금이 훨씬 이해가 잘 된다. 1학년때부터 이런 이야기를 들었기 때문에 비록 바로 이해하고 적용시킬 수는 없었지만 그래도 학교 과제 등을 하면서 한번 더 생각해 볼 수 있었던 것 같다. 지금 1학년 후배들도 처음 들어선 잘 이해가 안 갈 수 있겠지만 이 강의를 들어본 것이 앞으로 생각하는 방향에 많은 영향을 주지 않을까 생각한다. 강사가 원래 세미나를 딱히 지루하게 하는 사람은 아닌데 어제 축구때문에 다들 너무 상태가 안 좋았던 것 같은 점이 아쉽다. - [김수경]
  • 데블스캠프2011/다섯째날/HowToWriteCodeWell/권순의,김호동 . . . . 2 matches
          // 안에서 엘레베이터를 타지만 최저층을 초과하는 경우
          // 안에서 엘레베이터를 타지만 최고층을 초과하는 경우
  • 데블스캠프2011/둘째날/후기 . . . . 2 matches
          * Hacking != Cracking. Cheat Engine, 자바스크립트를 이용한 사이트 공격? 툴을 이용한 Packet Cracking 등 개인적으로 무척 재미있던 세미나였습니다. 뭐... 사실 많이들 관심은 있지만 실제로 하는 걸 보는 건 흔치 않은 만큼 이번에 세미나를 볼 수 있었던 것은 여러모로 행운이었다고 생각합니다. 더군다나 질문을 꽤 많이 했는데 선배님이 친절하게 답변을 해 주셔서 정말 감사했습니다. 웹 쪽은 이래저래 공격을 당할 가능성도 높은 만큼 나중에 그쪽으로 가게 된다면 관련 기술들도 배워둬야 하지 않을까 싶군요.
          * 코드도 올려야하는데 이거 원 안좋아서 망설여지네요. hashmap으로 다시 짠 걸 올립니다. 식을 잘못 계산했더니 천단위의 양수가 나와버리는 경우가 있었습니다. 어익후 확률계산식을 잘못 줄였었네요.. 이런 순수 알고리즘 재미있군요ㅋㅋ
  • 데블스캠프2012/첫째날/후기 . . . . 2 matches
          * 개인적인 사정으로 이번 데블스에는 제대로 참가를 못 할 것 같아서 영 찝찝하네요. 좀 더 두고 봐야 하긴 하겠는데, 아마 상황이 좋지는 않을 것 같아서 가슴이 아픕니다.
         페챠쿠챠는 준비하다가 이걸 어떻게 설명해야할까 멘붕이 오기도 했지만 그래도 설명하기에 시간이 부족한 쪽이 재미있지 않을까 하는 생각이 들었습니다. 중얼중얼보다는 우왕자왕이 재미있는 것 같기도.
  • 데블스캠프2013/첫째날/후기 . . . . 2 matches
          * GIT이 코드 줄 단위로 수정자를 확인할 수 있는건 진짜 좋은 기능인듯. SVN에도 있었을려나?? - [장혁수]
          * 네트워크는 물론 리눅스를 사용해본 것도 처음이었는데 공부할 것이 많은 것 같습니다. 우선 새로운 프로그램을 접해 봤다는 점에서 큰 수확이었다고 생각합니다. 네트워크 장비를 구비하여 시뮬레이트 하기가 쉽지 않을텐데 이렇게 간단하게 프로그램을 사용하여 시뮬레이트 할 수 있다는 것이 신기했습니다.- [백주협]
  • 메모장 . . . . 2 matches
          행동을 먼저 변화시켜서 태도를 바꾸게 되는 경우가 있다. 일단 저지르고 나서(행동) 태도의 변화를 꾀한다.
          말조심. 사실을 말하려는 의도에 반해 개인 사생활을 이야기하게 되는 경우가 종종 있다.
  • 몸짱프로젝트/BinarySearchTree . . . . 2 matches
          cout << "Error" << endl;
          cout << "Error" << endl;
  • 미로찾기/김영록 . . . . 2 matches
          //다음 예상되는 경로가 벽이 아닐경우 이동합니다.
          // 다음 경로가 벽일경우 그 아래의 case문을 실행되도록(순차)
  • 복날 . . . . 2 matches
          1. 중앙대학교 컴퓨터공학과 학생으면 누구에게나 회원의 기본 자격이 부여된다. 신입생의 경우 두 단계의 모집 일정을 거쳐 정회원이 될 수 있으며 재학생들은 사전 연락 후 어느 때나 입회 가능하다.
          1. 사전 연락 없거나(게시판 or 위키 공지), 현재 납득할 사정(학부생 아닌 경우,휴학)이 없이 2회 연속 정모에 불참시.본인 의사로 회원 자격을 상실한다.
  • 부드러운위키만들기 . . . . 2 matches
          저같은 경우 위키에 친숙해지게 된 계기가 1학년때 상민이형, 석천이형이 이끌어준 프로젝트를 위키상에서 하다가 친숙해졌습니다. 분명 친해지는데는 시간이 좀 걸렸습니다.(한 3~4달 정도) 한번 친해지니깐, 휴가 나와서도 맨날 가봅니다. -_- 1학년 2학기때쯤에 윗 학번이 프로젝트를 하나 저렇게 이끌어 주면서 자연스럽게 위키를 사용하게 하는것도 괜찮을거라 생각합니다. 그리고 보면 제로위키 페이지중에 공개/비공개 설정을 하게 만든다면 구지 개인위키를 따로 돌리지 않고 제로위키안에 자신만의 개인위키를 만들 수 있고 그렇게 하면 자신의 개인 위키에 자주 오다 보면 접근성도 높아 지지 않을까하는 생각을 해봅니다. - 남상협
  • 블로그2007 . . . . 2 matches
          *새벽에 책 보다가 불연득 떠오른 생각이 있어서 그대로 해보니까 잘 되는거 같아요~ㅋㅋㅋ[[BR]] 수생이형 신경써줘서 고마워요~ㅎ[[BR]]아 그리고 이클립스 쓰니까 저장만 하면 내장 브라우져로 바로바로 확인 가능해서[[BR]]웹 브라우져 따로 안열어도 되고 참 편해요!! 다만 아직 잘 쓸줄 몰라서...ㅎ[[BR]]근데 정말 상협이형 말대로 더 편하긴 편하네요~ㅋㅋㅋㅋ 남박사님 감사요~ㅎ
         미래에는 PDT로 수렴되겠지만 아직은 정식 버전에 잘 결합이 되지 않을 만큼 불안합니다. 따라서 PHPEclipse를 추천하는데 Web개발을 위해서는 이뿐만이 아니라, HTML Coloring 지원 도구등 여러 도구들이 필요합니다. 귀찮은 작업입니다. Calisto가 나오기 전부터 Eclipse 도구를 분야별로 사용하기 쉽게 패키징 프로젝트가 등장했는데 [http://www.easyeclipse.org/ Easy Eclipse]가 가장 대표적인 곳입니다. 아직도 잘 유지보수되고 있고, Calisto가 수렴하지 못하는 Script 개발 환경 같은 것도 잘 패키징 되어 있습니다. [http://www.easyeclipse.org/site/distributions/index.html Easy Eclipse Distribution]에서 PHP개발 환경을 다운 받아서 쓰세요. more를 눌러서 무엇들이 같이 패키징 되었나 보세요.
  • 상협/Diary/7월 . . . . 2 matches
          * 오늘은 별로 한게 없당... 오늘 기숙사에서 기분이 좀 나빠지는 일이 있었다. 그때는 막 화가 났는데, 조금만 다르게 생각하자 그렇게 나빴던 기분도 풀렸다. 역시 사람은 화를 내는것보다 웃는게 훨씬 나은거 같다.^^ 옛날에 어디서 그런 연구 결과를 본거 같다.(화를 내는 경우와 웃는 경우 신체적 호르몬 분비나 스트레스 해소나 축적 정도...) 화내는것은 자기만 손해이고 스트레스만 쌓이는거 같다. 차라리 상대편 사람에게 화난점을 말하거나 그러한 여건이 안되면, 그 사람의 입장을 이해해 보려고 노력해 보거나 그사람이 나한테 잘해줬던 일들이라도 생각해보던지 해야겠다. 그리고 사람이 한번 소심해지면 한없이 계속 소심해지는거 같다. 오늘 기숙사에서의 일도 여러가지 방향과, 여러 사람의 입장에서 다양하게 생각해보면 그렇게 기분 나쁠일은 아닌거 같다. 소심해 지지 말잣~
  • 상협/Diary/9월 . . . . 2 matches
          * 장점 : 이 길을 선택하면 내가 노력을 많이 하게 된다. 학사 병특가는게 쉽지 않다고 하는 만큼 널럴하게 놀면서 지내지는 않을 테니깐.
          * 너무 심각하게 생각하지 말아야 겠다. 뭐 최악의 경우라고 해봤자 나이 엄청 먹어서 군대가서 젊은 얘들한테 욕먹는건데, 그정도를 못버티면 내 자질이 부족한거니깐.
  • 상협/프로젝트관련 . . . . 2 matches
          ''방화벽을 자유 자재로 넘나들기 위해서는 80번 포트 위로 올라가는게 좋고, 그렇게 하려할때 가장 손쉽게 할 수 있는 기술은 SOAP을 이용하는 것이니, 이를 고려해봄이 어떨까 하는데. socket을 이용할 경우 80번 포트에서 웹서버가 돌아가면 '''말짱꽝'''으로 방화벽을 통과하기는 어려운일이고.. 그럼 SOAP은 어떻게 쓰느냐? 가장 손쉽게 접근할 수 있는것으로는 [http://java.sun.com/xml/jaxm/index.html JAXM]을 추천함. 그럼 어떻게 돌리는가? '''RTFM''' '' :) --이선우
          ''그냥 팀 이름이 방화벽이 아닌가 하는; 그리고 네트워크 프로그램 개발 경험이 없다면, 소켓통신부터 다루게 하는것이 좋지 않을까요. ^^; --석천''
  • 새싹교실/2011/AmazingC/6일차 . . . . 2 matches
          * sum2의 경우 호출시 메인함수 위에 선언이 되어있나 확인한 다음 sum2의 정의부를 실행한다!!
  • 새싹교실/2011/무전취식/레벨3 . . . . 2 matches
          * 후기는 이렇게 쓰면됩니다. 오늘은 2주차의 복습. 중요하고 중요하기 때문에 다시 복습하는거야~~ 왜냐하면 여기를 모르고서는 코딩을 할수 없거든. 2주차를 다시 확인해주면 좋겠어~! [새싹교실/2011/무전취식/레벨2] 그렇고.. 흠흠. 다음에는 이렇게 강의 시간을 줄이는 일은 없을꺼야. 복습을 하니까 어떤지가 젤 궁금한데 어떠니? 잘 배우고 있는것 같아? - [김준석]
          * 이번 주 수업은 짧았습니다 약 한시간정도ㅎㅎ 제가 모르는것을 되짚어 주셔서 감사했어요 이히히 근데 숙제안해갈뻔 했네여..ㅋㅋㅋㅋ까먹고 있었어요 앞으로 위키를 자주 확인 해야겠습니당.ㅇ...C공부를 더 하기 위해 C언어 입문서를 오늘구입했습니당...ㅎㅎ 잘해지고 싶어욧~! -[이진영]
  • 새싹교실/2011/무전취식/레벨4 . . . . 2 matches
          * 이소라 때리기 게임을 만들어보았습니다. 그 내용 순서는 ' 시작 -> 내체력, 이소라 체력 설정 -> {현재 상태 출력 -> 내 공격 선택,이소라 공격 선택 -> 공격 -> 상태 확인}(반복) -> 종료.' 였습니다. 이게 숙제로 나가는거죠?
          * 어... 어라.... 아 이게 후기가 아니었군요..ㅠ_ㅠ 위에다 썻는데... 비요뜨+과자를 먹으면서 함수를 배웠어요. 랜덤함수도 배웠을텐데 저는 팀플하러 가서 못배웠어요 ㅠㅠ 다시 한번만 알려주세요.. 죄송.....☞☜죄송해요...ㅋㅋㅋㅋㅋ 그래도 수업 재밌어요! 사실 팀플에 안가고 싶었습니다..하핳... 앞으로는 진짜로 화요일에 팀플을 잡지않을게요!!! 히히 죄쏭해여....♥ - [이소라]
  • 새싹교실/2012/AClass/2회차 . . . . 2 matches
          if(al1>='a' && al1<='z') //소문자일 경우
          else if(al1>'A' && al1<='Z') //대문자일 경우
  • 새싹교실/2012/새싹교실강사교육/2주차 . . . . 2 matches
         -과제 확인, 프로젝트 생성, GCC사용법, 컴파일, main함수, 변수, Data Type, 연산자, 입출력 기본 함수, 제어문 -
         3. 학생들 직접 코딩 해서 결과 확인하기
  • 새싹교실/2012/새싹교실강사교육/3주차 . . . . 2 matches
         2. Koistudy.net 과제 확인 및 빠른 복습 후 수업 진행
         코딩을 하다 보면 자신의 코드를 다시 한번 점검해야 하는 경우가 꼭 생깁니다. 하지만 항상 문제가 생기죠. 이게 main문의 괄호(curly bracket : {} ) 인지 for문의 {} 인지 헷갈릴 때가 있죠? 이번 시간 이후에 한번 검색해보세요. 코딩 띄어쓰기, 괄호를 어떻게 붙여야 하는지에 대해서 말입니다. 꼭! 잊지 마세요. 중요하답니다.
  • 새싹교실/2012/새싹교실강사교육/4주차 . . . . 2 matches
         2. 구글 협업 과제 확인 및 느린 복습 후 수업 진행
         파일은 메모리와 같은 주기억장치가 아닌, 하드 디스크 같은 보조기억장치에 저장되는 기본 단위입니다. 파일에는, 그 어떤 프로그램이던 간에 무조건 프로그램이 작성한 정보가 저장되는데요. 프로그램은 꽤나 많이, 실행 중에 파일을 새로 만들거나 등의 행동을 해서 파일을 액세스해야 하는 경우가 생깁니다. 그렇기 때문에 정보의 저장과 불러오기가 꼭 필요합니다. 그걸 간단하게 두 개로 설명해보겠습니다.
  • 새싹교실/2012/주먹밥 . . . . 2 matches
         ///typedef를 쓴경우
          * APM_SETUP폴더에 htdocs폴더에 index.html을 하기. http://www.w3schools.com/js/default.asp 가서 javascript예제 index.html에 작성하고 돌아가는것 확인.
  • 새싹교실/2013/라이히스아우토반/1회차 . . . . 2 matches
         학생들이 배우려는 자세가 되어 있다는 것은 확인이 되었으므로, 앞으로는 준비를 더 해서 더 가르쳐 줘야 겠다.
         오늘처럼 나만을 위한 준비는 하지 않을 것이다.
  • 새싹배움터05 . . . . 2 matches
         신입생들에게도 우리들에게도 좀더 많은것이 남을 수 있는 새싹 배움터가 될 수 있지 않을까요??[[HTML(</font></b>)]]
         7피의 프로젝터는 재학생이 이용할수 없습니다. 교수님만 이용할수 있다고 합니다. 피치못할경우 빌릴수는 있긴 합니다. - [톱아보다]
  • 서울대컴공대학원구술시험/05전기 . . . . 2 matches
         3번 문제 정확하게는 DMA에 대해 설명하고 DMA가 cash에 문제되는 경우와 해결방안, 버츄얼메모리에 문제되는 경우와 해결방안 05.11.02
  • 서지혜 . . . . 2 matches
          1. 컴파일러 스터디: [NewCompileError]
          1. 컴파일러 스터디: [NewCompileError]
  • 세벌식 . . . . 2 matches
          * [임인택]의 경우 어떤 치과에서 키보드 키캡에 붙이는 스티커를 나눠주는 페이지를 보면서 처음 세벌식을 접하게 되었다. 그때가 2005 년 2월경이었는데 처음에는 무척 힘들었지만 6개월정도 지나니 익숙해졌다. 세벌로 전환하기 이전인지 이후인지 기억은 잘 나지 않는데, 스펀지라는 프로그램에서 공병우 박사님을 추모하면서 세벌식과 관련된 지식을 알아본 적이 있었다. 카이스트인지 포항공대인지에 다니는 한 학생이 실험을 했는데, 두벌, 세벌 모두 엄청난 속도로 타이핑하는 장면을 봤다. 충격이었다. 어떻게 각각을 저렇게 빨리 칠 수 있는지. 나도 예전에 타이핑이라면 한가닥 했었는데 10년이상 쓰던 두벌을 버리고 세벌로 전환한 이후 두벌속도가 급격하게 줄었다. 처음 세벌로 바꿨을때 세벌보다 두벌을 약 20배 정도 빨리 칠수 있었는데, 지금은 오히려 두벌이 더 느리다. 이걸 가지고 생각해 볼 수 있는 문제는 사고의 전환이다. 스펀지에 나왔던 학생은 두벌로 타자할때 두벌식으로 사고하고, 세벌로 타자할때 세벌식으로 사고했을 것이다. 조금 생각해보면 이는 우리가 공부하는데 빗대어 설명할 수 있을 것이다. 가령 함수형 언어를 쓸때는 함수형 언어의 패러다임으로만 생각하고, 객체지향 언어를 쓸때는 객체지향 패러다임만을 생각한다던지 하는 것이다. 지금 생각하건데, 그 학생은 두벌/세벌 타자에 있어서 구루인것 같다. 나도 두벌/세벌을 모두 쓰지만 두벌식을 쓸때 세벌식으로 생각하고 키를 누른다던지, 세벌식을 쓸때 두벌식으로 생각하고 키를 누르는 경우가 많다. 프로그래밍을 할때도 마찬지. 내가 배제하려고 하는것을 완전히 배제하지 못한다.
  • 숫자를한글로바꾸기/김태훈zyint . . . . 2 matches
         int is_numarray(char getdata[]); //char 배열의 요소가 숫자인지 확인 - 맞으면 TRUE 리턴
         //char 배열의 요소가 숫자인지 확인 - 맞으면 TRUE 리턴
  • 식인종과선교사문제/변형진 . . . . 2 matches
         여기서는 구현하지 않았지만, 모든 cases에 대해 각각 어떻게 처리할 수 있는지를 먼저 컴퓨터가 계산하여 DB에 담아서 일괄 처리하면, 이 문제가 상당히 복잡해질 경우 Backtracking보다 나은 효율을 보일 수도 있지 않을지?
  • 신기호/중대생rpg(ver1.0) . . . . 2 matches
          printf("1.아이템을 산다\n2.쉰다\n3.보유 아이템 확인\n4.다른 마을로 이동한다\n5.저장\n6.불러오기\n7.종료\n");
          printf("1.아이템을 산다\n2.쉰다\n3.보유 아이템 확인\n4.다른 마을로 이동한다\n5.콜로세움 입장\n6.저장\n7.불러오기\n8.종료\n");
  • 알고리즘4주숙제 . . . . 2 matches
         == 일어나지 않을거 같은 일들 ==
          우리가 알기로는 복권의 당첨 확률은 매우 낮다. 그러나 당첨자들은 존재한다. 왜일까? 그리고 복권 당첨 확률을 높이는 경우들을 생각해보고 그생각들의 문제점도 생각해보자.
  • 오픈소스검색엔진Lucene활용/세미나060401_2시 . . . . 2 matches
          * 자신의 프로그램에 검색이 필요한 경우 굳이 새로 만들기 보다는 기존의 검증된 오픈소스를 활용하기 위한 방법을 소개해 드릴 예정입니다.
          * 기본적으로 검색 엔진이 인덱스를 약간의 시간을 들여서 인덱스를 구성해서 추후에 검색을 했을 경우 빠른 검색 속도를 보장 합니다. 그리고 중간 중간에 추가, 삭제 및 변경된 내용들은 꾸준히 인덱스를 중간 중간 업데이트를 해 내갈 수 있습니다.
  • 요정 . . . . 2 matches
         '성스러운 것' 과 '사악한 것' 어디에도 속하지 않는다. 보통때는 사람들과 다를 것도 없는 생활을 한다. 무리를 만들어 사는 것도 있으며 혼자서 사는 경우도 있다. 나무나 물의 정령처럼 자연계에 오랫동안 살기도 하고 모습을 감추고 살기도 한다.
         모두 서로 다른 취향을 갖고 있어 멋내기를 즐기는 듯 하다. 숲속에 사는 정령들은 숲에서 얻을 수 있는 소재를 사용해서 능숙하게 옷을 만들어 입고 인간의 주위에 사는 요정들은 인간에게 빌린 물건으로 꾸려 나가는 경우도 있는 듯 하다.
  • 우리홈만들기 . . . . 2 matches
          * 나도 같은 생각인데. 현재의 웹 개발쪽 추세는 소 & 중형인 경우는 주로 PHP를, 중 & 대형인 경우는 Java 관련 or MS 관련 JSP & ASP라 보고 있음. 공부목적이 아닌 그냥 즐기기용이다 하더라도 PHP 나 Python 이 더 쉽게 접근할 수 있을 것이라 생각.~ - ["1002"]
  • 위시리스트/130511 . . . . 2 matches
          * 라즈베리파이(중요도 : 2) : 4개 이상 사서 병렬 처리 서버를 만들어 보는 실습을 하는것도 나쁘지 않을듯.. - [안혁준]
          * 중요도 별로 모아두는게 보기 편하지 않을까요? :) - [정진경]
  • 위키QnA . . . . 2 matches
          * 예외 경우
         Q: 어디에 글을 올려야 될지 고민하던 중 이곳에 글을 올립니다. 위키를 쓰다가 얼마전부터 느끼기 시작한 점인데요. 이것이 문제인지 아닌지는 잘 모르겠습니다. 위키의 Recent Changes를 통해 바뀐 글중 관심있는 글들을 봅니다. 변경되었다고 해서 글을 읽어보지만 쉽게 무엇이 변경되었는지 알아볼 수 없었습니다. 시간이 많이 흐른 뒤에나 읽어보게 되는게 아닌가 생각합니다. 아무튼 제가 느끼기에 제가 읽지 않은 부분을 쉽게 알 수 있으면 편하지 않을까 생각합니다. 이미 안다고 생각한 글을 다시 읽어도 많은 도움이 되겠지만... ^^; 세세한 변화는 눈치채기 힘든듯 합니다.--["Benghun"]
  • 위키에대한생각 . . . . 2 matches
          * 검색을 하지 않고 페이지를 만들 경우 같은 내용을 담을 페이지가 생길 수 있다. 페이지만들기를 할 때 자동으로 검색을 한 다음 만들게 하는 방법도 괜찮은 듯하다.
          *위키는 최근바뀐글을 보고 그 페이지의 참여 정도를 파악할 수 있다는 점에서, 기존의 조회수를 보고 참여하는 것에 익숙한 사람들은 다소 어색한 공간이 될 수도 있다. 이를테면, 내가 어느 위키페이지에 글을 남겼는데 그 페이지를 보는 사람이 얼마나 있을까 하는 의구심이 생겨 그 페이지에 대한 참여를 더디게 할 수 있다. 다른 사람이 그 페이지를 보기만 하고 글을 남기지 않는다면 최근바뀐글에 그 페이지가 업데이트 되지 않으므로, 참여 의욕을 저하시키는 요인이 된다. 해당 페이지에 조회수를 누구나 쉽게 볼 수 있도록 나타낼수는 없을까? (물론, 조회수를 나타내면 참여가 적은 페이지를 두번 죽이는 경우가 될수도 있다 ㅡ.ㅡ;;)--[문원명]
  • 위키의특징 . . . . 2 matches
          * 개인위키 : 스쳐지나가는 아이디어들을 쌓아서 결국 체계적인 정보 자료집을 만들어나가고자 할 때에 유용, 종국에 있어서는 체계적으로 정리된 지식의 형태가 된다. 개인위키는 블로그처럼 타인에게 보여주기 윈한 목적보다 자기 자신을 위한 것인 경우가 더 많다. 어느 누구에게 공개하지 않고 홀로 써도 많은 가치를 얻는다. 반면 블로그는 비공개 일기장으로 쓰는 경우는 별로 없다. 객관화된 양질의 지식을 얻기 위해서는 위키가 훌륭함.
  • 이병윤 . . . . 2 matches
          1 파싱결과를 통해 신청하고자 하는 과목의 여석이 존재하는지 확인한다.
          1 여석이 존재할경우 수강신청 페이지를 요청하여 신청한다.
  • 이영호/My라이브러리 . . . . 2 matches
         // 성공시 0, 실패시 -1 반환. (socket에서 에러가 났는지 bind에서 에러가 났는지 구분이 힘들겠지만, socket이 할당 되지 않는 경우는 적으므로 bind 에러임.)
         // Bind 에러에서도 서버를 재가동 할 경우 resueaddr 로 flag를 설정했기 때문에, Port 에러 뿐임. 이미 Port를 사용할 때만 에러가 남.
  • 임인택/삽질 . . . . 2 matches
          - ToDo : StaticObject 의 소멸시점 알아봐야지. 클래스일 경우와 구조체일 경우. Java, C++
  • 정모/2002.5.30 . . . . 2 matches
         일반적으로 피시실 등이나 세미나때에 선배들과 이야기하고, 선배들에게 조언을 들으면서 프로그래밍을 하는 것과 프로그램의 처음 작성부터 PairProgramming 을 하는 경우가 어떤 차이가 있을지 생각을 해보고 이러한 '페어가 저절로 진행되어서' 라고 결론을 내렸으면 합니다.
         문제를 내 주고 난 다음에 선배들과 이야기하면서 프로그래밍을 하는 경우, Programming 의 주도자는 문제의 당사자인 후배가 됩니다. 하지만, 문제를 풀어나가는 순서 (즉, 문제를 받고, 컴퓨터 앞에 앉았을때부터의 작업 진행과정들)는 여전히 후배들의 순서를 따르게 됩니다.
  • 정모/2002.7.11 . . . . 2 matches
          이선우가 알고 있기로 현재 zeropage.org 도메인은 ["구근"]이 가지고 있고, 도메인 이용료 또한 직접 내고 있는것으로 알고 있습니다. (이 이야기가 맞다면) 제로페이지는 개인에게 비용을 부담시키는 현재의 상황을 해결해주어야 합니다. 그리고, 도메인 또한 단체가 소유할 수 있는지는 모르겠군요(아는분?). 소유할 수 있다면, 차후 관리는 제로페이지에서 직접 하는게 좋지 않을까요?
         ''DeleteMe later: 천천히 제로페이지 회원들을 위한 컴퓨터 공부 로드맵(roadmap)을 하나씩 만들어 가면 어떨까요? 갑을 공부하려면 이걸 먼저 보고, 그 다음 이런 프로젝트들을 한번 씩 해보고, 어떤 기사를 보고 등등. 각 과목에 대해서 만들어도 좋고, 특정 기술에 대해서 만들어도 좋겠습니다. 가능하면 선배들이 각자 자신이 공부한 경험을 토대로 "공동 작성"하면 참 좋겠죠. 다만 한시적인 기술일 경우 "축적"의 가치가 별로 없이 해당 로드맵이 일이년 만에 쓸모없어 질 수도 있겠죠. --JuNe''[[BR]]
  • 정모/2002.9.26 . . . . 2 matches
         ["ProjectPrometheus"] 팀의 경우는 현재 도서관 UI 가 바뀌는 통에 열심히 기존 코드 수정중이라고 함. 그대신 모듈화가 되어있어서 소스의 일부 클래스들만 수정하면 된다고 한다.
          * 학사장교 - 컴퓨터와 관련된 학사장교의 경우 경쟁률이 6 : 1 선이라고 한다. 시험과 면접등이 있다.
  • 정모/2004.4.9 . . . . 2 matches
          * 세미나 날짜 : 4월 13일 화요일 5시(실습이 없을 경우)vs7시(실습이 있을 경우)
  • 정모/2005.12.29 . . . . 2 matches
          - 지금 있으신 분을 우선적으로 확인하고 스텝들과 찾아뵐 계획.
          - 세미나가 없을 경우 코드레이스형식의 대회 - 동기부여 : 1만원 정도의 문화 상품권
  • 정모/2005.2.16 . . . . 2 matches
         [이승한]의 1:1 수다형 회의 답게 결론이 잘 나오지는 않는다. 중간에 끊어 먹고 다음 주제로 넘어가는 경우가 허다하다. 지금은 적은인원이 간단하게 회의를 진행하기 때문에 쉽게 이루어 질지 모르지만 3월말 신입회원 모집에서는 어떻게 될까??
         지금그때는 외부에서도 행사 준비할 사람들을 받아보는건 어떨까요?? 지금그때 행사 준비를 하고 싶어하는 사람도 있지 않을까요?? - [이승한]
  • 정모/2007.3.27 . . . . 2 matches
          - PC관리 비용이 나오지 않을 경우 우리 또한 PC실을 관리할 이유가 없다(학교에 맡겨버리자)
  • 정모/2011.10.5 . . . . 2 matches
          * 명제는 주인공의 국적에 대한 것이었는데 아무도 주인공이 누구인지 질문하지 않았습니다. 스스로가 뭘 하는지도 모르면서 무언가 하고 있는 경우가 많다는 걸 다시 한번 느낄 수 있었습니다. - [김수경]
          * 발표는 드립과 자신감이 절반 이상입니다. 하지만 저같은 경우 이미지 트레이닝을 많이 하는게 제일 좋았어요. 언제 한 번 소현이 발표할때 봐야겠다. - [지원]
  • 정모/2011.3.2 . . . . 2 matches
          * 새 학기 첫 정모라 그런지 많은 분들이 참석해주셔서 좋았습니다. 정모에서 학술활동을 하기로 했는데 어제는 학기 첫 정모인데다 페챠쿠챠도 없어 안내 위주로 진행된 것이 아쉽네요. 밤을 새고 정모를 갔더니 정신이 없어 진행하는 동안 실수를 많이해서 다음부턴 정모 전날에 꼭 잠을 충분히 자고 와야겠다고 생각했습니다. 사실 어제 정모를 마치고 예정보다 정모가 빨리 끝나서 당황스러웠습니다. 내용을 꾸릴때는 두시간치 내용이라고 생각했는데 진행하면서 제가 말이 조금 빠르지 않았나 싶습니다. 앞에서 계속 혼자 말하려니 듣는 분들은 현재 어떻게 느끼고 계시는지 알 수 없어 문제입니다. 그리고 꽤 많은 내용을 안내했는데 그냥 줄줄 말하기만해서 다 기억하실 수 있을지 걱정입니다. 정모 요약에 내용을 정리해 올릴 예정이지만 그와 별개로 다음 정모부터는 안내할 내용이 많은 경우 ppt나 문서 등 자료를 준비해오도록 하겠습니다. - [김수경]
          * 정모 방식이 피드백을 하는 것으로 갯수를 채워야 정회원이 유지된다고 들었습니다. 커피 포인트 도장을 찍는 것 같아, 다 모으면 정회원 혜택! 이라는 것이 더 와닿습니다. 새싹 교실 강사 지원을 했는데, 매주 2시간 씩 8회 이상 수업하는 것과 printf가 아닌 다른 방식으로 확인하는 것이 신기했습니다. 제가 잘 할 수 있을 지 모르겠지만, 되도록 중간고사 전후로 끝내는 내에서 열심히 진도를 나가보겠습니다ㅠㅠ 그리고 책읽기 모임! 장소 이번에도 카페 같은 곳으로 잡는건가요?ㅁ? 월요일 5시로 정했지만 6피의 서랍장 있는 쪽 책상에서 시험기간만 아니면 조용히 대화해도 괜찮지만..음 토모카나 기숙사 쪽의 카페를 애용하는 것도 괜찮고, 과방이나 다른 빈 강의실을 잡는 것도 괜찮을 듯 싶어요. - [강소현]
  • 정모/2011.3.21 . . . . 2 matches
          * 현이의 이번 아이스 브레이킹은 새로운 시도였던 것 같았는데, 아쉽게도 처음이라 그런지 시행착오를 겪은 것 같았습니다. 다음 아이스 브레이킹때 이번에 아쉬웠던 점이 보안되면 더 재미있는 시간이 되지 않을까 생각합니다. 승한이 형의 Emacs & Elips 세미나를 듣고 나서는 한편으로는 저런 것을 써 보는 것도 괜찮을 것 같다라는 생각도 들었지만.. 아직은 지금 쓰고 있는거 부터 잘 다룰 줄 알고나서 접근하는 게 좋지 않을까라는 생각도 들었습니다. -_-;; 워낙 초보인 나 자신이 부끄럽기도 한 시간이었습니다. 쩝. 그 이후엔 일이 있어서 먼저 갔는데... 저.. 참가자에 제 이름이 없네요 -ㅅ-ㅋ (먼저 가서 그런가 ㅋ) - [권순의]
  • 정모/2011.4.4/CodeRace/강소현 . . . . 2 matches
          System.out.println("[Error] 배는 2인승이야!");
          System.out.println("[Error] Luke 혼자 못탐ㅋ");
  • 정모/2012.1.27 . . . . 2 matches
          * 정회원 기준은 지금까지의 정회원에 대한 제고를 하는 것이 아닙니다. 12학번 새내기들이 정회원이 되는 것에 관한 것입니다. 조건을 완화하여 좀 더 쉽게 정회원이 되도록하고, 차후에 (1학년 2학기라던가)활동이 전혀 없는경우 조금씩 정리하는 방향이 어떨까 의견을 내보았습니다.
          * 제가 첫 MC(?)를 맡은 정모였습니다. 뭐랄까, 진행이 지루하거나 하지는 않았으면 좋겠네요. 보통 제가 드립을 치더라도 준비를 약간이나마 해야 칠 수 있는 경우가 많기 때문에.. 재밌고 보람찬 정모를 만들려면 어떻게하는게 좋을까 생각해보게 되네요. 뭐, 아무튼 한종이가 OMS를 잘 해주어서 그에 대한 부담이 줄었던거 같아요 ㅋㅋ. 다음주에는 제가 Agile Korea에서 배워온 '무언가'를 같이 해봐야겠어요. ㅎㅎㅎㅎ -[김태진]
  • 정모/2012.2.17 . . . . 2 matches
          * 백업해두지 않았다가 자료가 날아가는 경우 다른 방법이 없어요 ㅠㅠ
          * 컴퓨터에 문제가 생길경우 본체에 손대지말고 ZeroPage학회실, 혹은 PC실 건의게시판에 문의주세요.
  • 정모/2012.7.18 . . . . 2 matches
          * 만약 예정 일자까지 장소를 못 잡았을 경우에는 날짜가 변경될 가능성도 있음.
          * 사람이 적은 건 내려간 사람도 많고 하기 때문에 좀 어쩔 수 없지 않나 싶네요. 개인적인 이미지로는 ZP 사람들은 인도어 파니까 공간이 넓은 게 역시 가장 좋지 않을까 생각합니다. 저번 주에 이어서 이번 주에도 정모 정리를 조금 해 봤는데 괜찮게 했나 좀 궁금하네요 - [서민관]
  • 정모/2013.2.26 . . . . 2 matches
          * 특별한 동아리 행사가 없는 경우 예정대로 진행 예정입니다.
          * 회고도 안했네요. ㅇㅅㅇ 뭐, 이제 회장단이 정해졌으니 좀 더 체계적인 활동이 시작되지않을까요? ㅋㅋ -[김태진]
  • 정모/2013.4.29 . . . . 2 matches
          * Friendship의 경우에는, 삼성소프트웨어멤버십 내에서 동아리 성과 공유회 등에 참여하게 됩니다.
         - 쓸기 - 책상위 정리 - 책상위 닦기 - 쓰레기통 비우기 - 칠판 지우기 - 마커 구비(과사에서 가져오기) - 바닥에 얼룩(흘린것)닦기 - 가방들 신발장 옆에두기 - 소파 정리(뭔가 묻었을 경우 닦기) - 담요 정리 - ZP책 책장에 꽂기 - 환기시키기
  • 정모/2013.5.13 . . . . 2 matches
          * 위에 영준이 발표에 대해서 그렇다고 생각되는 말도 있고 나랑은 생각이 다른 것도 있는 것 같아서 잠깐 내 생각도 적어 봄. 개인적인 생각으로 영준이 발표가 유익하고 도움이 되는 내용이 많았던 것은 동의하지만 그게 '좋은 발표'였냐고 물어보면 그건 조금 아니지 않을까 싶은 생각이 든다... ;;; OMS가 발표를 들어주는 사람들이 있기 때문에 의미가 있는 것도 맞는 말이고 ZP 회원들이 우호적인 청중인 건 동의하지만 그렇다고 ZP 회원들이 모든 주제에 대해서 집중하고 듣는 청중은 아닐테니까. ZP회원이든 누구든 발표가 길어지거나 어려운 내용이거나 흥미가 안 가는 내용이거나 하면 주의가 흩어지는 건 당연하지 않을까. 물론 조금 더 집중해서 들어주면 좋았을 수는 있지만 청중의 주의를 끄는 것은 발표자의 일이기도 하니까. - [서민관]
  • 정모/2013.7.29 . . . . 2 matches
          * 일반적으로, 매 스터디 진행시에 다과를 구입해서 먹는 경우가 많기 때문이며, 1회에 한해서 전액을 사용하는 것이 효율적이지 못하다는 의견이 있기 때문
          * 제 입장에서는 중앙대 GDG와 ZeroPage는 분리를 했으면 좋겠네요. 현재 ZP만 봐도 다양한 혜택을 받고 있는 만큼 또한 다양한 책임을 지고 있다고 생각하는데, 여기에서 GDG까지 하게 되면 역시 추가적으로 해야 하는 일이 늘지 않을까 생각합니다. 사실 해야 하는 일이 느는 것 자체가 문제라기 보다는 나중에 정말로 하고 싶은 일이 생겼을 때 현재 지고 있는 짐(책임)이 무거워서 몸을 움직일 수 없다면 문제가 아닐까 하는 염려 때문이네요. - [서민관]
  • 정모/2013.9.4 . . . . 2 matches
          * 해천 -> 1명만 가는 경우 지원은 당연히 안되는 것이고, 영기말처럼 하는게 더 맞는것같다.
          * 제가 할법한 잔소리는 이미 한종이가 위에서 했으니 제끼고 궁금한 게 있어서 이쪽에 붙습니다. 한명만 가는 경우 지원하지 말아야 할 당연한 이유가 있나요? 학술활동이 꼭 단체활동이어야 한다는 법도 없고.. 같이 갈 사람 못 구하면 지원도 못 받는 건 어쩐지 이상하게 느껴집니다. - [김수경]
  • 정수민 . . . . 2 matches
          리팩토링이란 말이 있길래 코드를 한 번 봤어요. 배열 리팩토링이란 어느 부분을 말하고 있는지 잘 모르겠지만, 이전에 더 쉬운 리팩토링부터 해나가야 하지 않을까 싶어요. 이를테면 randem_x, randem_y같은 함수는 무슨 일을 하는가요? 하는 일이 너무 많지 않은지 의심해보세요. 코드가 중복되는 부분을 줄여나갈 수도 있겠죠. --[Leonardong]
          /*동점일경우 들어갈 순위에서 높은 숫자로 순위를 매깁니다.*/
  • 제12회 한국자바개발자 컨퍼런스 후기/유상민의후기 . . . . 2 matches
          * 자신의 이론을 세웠다면, 이를 패턴화 하고 용어를 만들고, 사례를 만들고, 통계를 뽑고, 결과를 반영해야 이정도 발표를 해야하지 않을까. 싶다.
         소프트웨어 진흥원에서 이런식으로 가이드를 한다는 부분이 충격이었다. 컨설팅 후 참여 인원이 지속하기 너무 어렵지 않을까 싶다. 본인이 정립했으므로, 시중에 참고할 만한 관련 서적은 당연히 없고 용어 정의 부터 모호하다. 인상 깊은건 중간에 발표자와 프로그래머의 '행복'에 대한 언급을 많이 하는데.. 난 이거 듣고 많이 우울해 졌다.
  • 제로스 . . . . 2 matches
          모르는 경우 같이 토의.
          * 우리 OS 직접 만들어보는 실습은 [http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788979143256&orderClick=LAA 만들면서 배우는 OS 구조와 원리] 책이 좋지 않을까 싶은데 ㅋ 따라하기도 쉽고, 현태가 더 upgrade해서 만들 수 있는 부분이 있으면 코멘트 해주고 ㅋ- [김건영]
  • 중위수구하기/조현태 . . . . 2 matches
         그래도 뭐 나름대로 MAX_NUMBER에 3이외의 값을 넣으면(단 홀수! 아닐경우 정확한 가운데 값이 아니닷! ) 여러가지로 늘릴 수 있다.^^
         요렇게 하는게 보기 편하지 않을까나;;; -태훈[zyint]
  • 지금그때2004 . . . . 2 matches
         Berkeley Visionaries Prognosticate About the Future http://netshow01.eecs.berkeley.edu/CS-day-004/Berkeley_Visionaries.wmv 이걸 보면 대충 감이 올겁니다. 이 동영상의 경우 뛰어난 패널진에 비해 진행자가 그리 좋은 질문을 하지 못해서 아쉽기는 합니다. 좋은 질문을 하려면 서점이나 도서관에서 [질문의 힘]이라는 책을 읽어보세요. 그리고 04학번 눈높이의 질문에 대한 고학번들의 생각을 들어보는 것도 중요하지만 04학번이 전혀 생각 못하는 질문을 대신 물어주는 것도 중요합니다. 고객과 요구사항을 뽑는 것과 비슷할 수 있겠죠. "그들이 원하는 것"은 물론 "그들이 필요로 하는 것"(주로, 나중에 그들이 원할만한 것)을 이야기해야 하니까요 -- 또 종종 그들은 자신이 뭘 원하는지 모르는 경우도 많습니다.
  • 지금그때2005/회고 . . . . 2 matches
         작년에 경우 중간에 자리를 뜨는 사람이 꽤 되었다는 말을 들었는데 이번엔 그런 경우가 전혀 없었다.(잠시 들른 석천형 제외) -[강희경]
  • 지금그때2006/후기 . . . . 2 matches
         훨씬 부드럽게 시간적 제한을 둘 수 있지 않을까요.
         첫번째 세션은 참여를 못해서 모르겠고, 두번째 세션의 경우 선배들이 좀 적어서 아쉬웠으나 뜻깊은 자리였습니다. '나를만든책장'은 4회 전통 중 새롭게 시작한 전통일 겁니다. 더 오래 진행되고, 사람들에게도 뜻깊고 더 이로움을 주는 세션으로 계속 되었으면 좋겠습니다.
  • 지금알고있는걸그때도알았더라면 . . . . 2 matches
         우리는 늘 과거에 대해 아쉬워 한다. 그때 내가 이걸 알았더라면, 그때 내가 이걸 했더라면 하고 후회하기도 한다. 인간은 시간이 지나고서야 비로소 가치를 알고 지혜를 얻는 자연의 섭리 때문이다. 하지만, 나는 비록 그렇게 하지 못했지만 내 뒤에 오는 사람은 더 나은 길을 택하거나 위험한 길을 피하게 도와줄 수 있지 않을까?
         앞서 가는 사람은 내가 만드는 길이 뒷 사람을 어렵게 하지 않을까 두려워해야 하고, 만약 자신이 잘못된 길을 만들었다면 뒷 사람을 위해 표지를 남겨야 할 것이다. "길이 위험하니 돌아가세요."
  • 컴공과학생의생산성 . . . . 2 matches
         생산성에 대해 신경 못쓰는 이유중 하나가 능력부족으로 인한 여유부족이 아닐까 하는 생각. 중간에 자기자신이 어떤 방식으로 프로그램을 만들고 있는지를 생각할 여유가 없어서인지도 모르겠네요. 그러한 점에서 개발하기 전의 문서와 작업일지를 작성하는 것이 중요하다고 생각합니다. (자신이 어떤 방식으로 생각을 하면서 일하고 있다라는 것을 인식하고 있는 것은 생산성을 높이기 위한 방법이 되지 않을까 하는.)
         아주 중요한 이야기를 했군요. 자신이 생각하는 것에 대해 생각하는 것을 meta-cognition이나 self-reflection이라고 합니다. 인간 말고 다른 동물은 이런 고차원적 뇌활동을 할 수 없다고들 하죠. 전문가와 초보자의 차이는 이게 있냐 없냐로 말하기도 합니다. 현재 닥친 물리적 행동 자체에 뇌력의 거의 대부분을 소진하고 있다면 자신이 지금 하고 있는 것이 뭔지 따질 겨를이 없죠(테트리스를 처음 하는 사람과 전문가의 뇌 온도분포를 촬영한 걸 보면 극명합니다. 처음하는 사람의 뇌는 한마디로 비효율적인 엔진입니다. 하는 일보다 밖으로 방출되는 열량이 더 많습니다. 전문가의 경우 아주 작은 부분에서만 열이 납니다. 덕분에 게임하면서 딴 생각할 여유도 있죠). 소위 "어리버리"하다고 하는 겁니다. 군대에 처음 온 이등병들이 이렇습니다. 자기가 도대체 뭘하고 있는지를 모르죠. 그래서 실수도 많이하고, 한 실수 또 하고 그렇습니다. 일병을 넘어서고 하면서 자기가 하는 걸 객관적으로 관찰하고, 요령도 피우고 농땡이도 부리고 하는 건 물론, 자기가 하는 일을 "개선"하는 게 가능해 집니다. --김창준
  • 코바용어정리 . . . . 2 matches
         의 인터페이스 타입에 대해 스텁에 대한 프로그래밍 인터페이스를 필요로 한다. 보통 스텁은 OMG-IDL로 정의되어 있는 객체 오퍼레이션에 대한 액세를 하게 해주는데, 일단 프로그래머가 OMG-IDL 및 특정 프로그래밍 언어에 대한 언어 매핑에 친숙해지면 손쉽게 예상이 가능한 방식으로 액세르를 하게 해준다. 해당 스텁은 ORB 코어에 전용이며 최적화된 인터페이스를 사용해서 나머지 ORB들을 호출하게 될 것이다. 만약 여러 개의 ORB를 사용하게 된다면 각각의 스텁은 제 각기 해당하는 ORB를 호출하게 될 것이다. 이 경우에 ORB와 언어 맵핑은 공조하여 각각의 스텁이 특정 객체 레퍼런스와 제대로 연결될 수 있도록 해야 할 것이다.
         클라이언트가 호출될 객체와 수행할 오퍼레이션을 지정하고자 할 때, 특정 객체 A의 특정 오퍼레이션을 지정하는 대신 객체 호출을 동적으로 생성하도록 허용하는 인터페이스를 이용할 수 있다. 이러한 경우 클라이언트 코드에서는 수행되는 오퍼레이션과 전달되는 파라미터의 타입에 대한 정보를 제공해야 한다. 이 정보는 대개 인터페이스 저장소와 같은 런타입 소스에서 얻어진다. 실행 시간 중에 해당 정보를 얻은 후, 클라이언트 코드는 이른바 동적 호출 인터페이스(DII)를 이용해서 동적으로 호출을 할 수 있게 된다.
  • 큐와 스택/문원명 . . . . 2 matches
         // VC++ 6.0 이라면, 아마 release 모드에서 실행이 되지 않을것입니다.
          array[count] = array[count+1]; // string의 경우와 달리, Pointer 값만 복사됩니다.
  • 특정 웹사이트 메타 검색 . . . . 2 matches
          1. 다른 검색엔진이 동작하지 않는 경우 결과를 보여줄 수가 없습니다.
         타겟 사이트를 검색하길 원하는 경우
  • 프로그래밍언어와학습 . . . . 2 matches
          * 학교에서 C++ 배운다고 하드웨어 건드리나. -_-; (전전공이라면 몰라도..) 컴퓨터공학과의 경우 학교에서 C++ 배워도 어셈블러 레벨까지 다루는 사람이 별로 없다고 할때, C++ 을 배웠다고 시스템레벨 까지의 깊은 이해가 필요없었다는 점인데.. 글을 읽으면, 마치 '교육용 언어로 C, C++ 을 배웠다면 시스템 레벨까지 이해할 것' 처럼 쓴 것 같다고 생각. (C, C++ 포인터를 레퍼런스 이상의 개념으로 쓴적이 있었나.. --a) 차라리 '우리는 전전공 출신에 하드웨어제어 해본 사람 뽑습니다' 라고 할것이지..쩝. Domain-Specific 한 부분을 생각치 않고서는 시스템 프로그래머에게서는 늘 자바와 Script Language 는 '군인을 나약하게 만드는 무기' 일 수밖에 없으니까.
         하드웨어를 "뼈 속 깊이 꿰뚫고 있는 사람"과 그런 거라곤 하나도 모르는 사람이 동일한 문제에 접근했을 때 후자의 경우가 더 훌륭한 프로그램을 더 빨리 산출해낼 가능성은 얼마든지 있습니다.
  • 프로그래밍잔치/첫째날 . . . . 2 matches
          * 우리가 졸업을 하면서 접하는 언어의 수가 얼마나 되는가? 10손가락에 꼽을수 있지 않을까? 프로그래밍 경력이 짧은 사람이라면, 많은 경험을, 많은 사람이라면 색다른 경험을 접해 보자.
          * 결과 확인 10
  • 한비자 . . . . 2 matches
          * 이 책을 읽으면서 아무런 비판없이 받아들였던 공자의 주장도 저렇게 비판적으로 받아들일 수 있다는 것을 배웠다. 옛날부터 그렇게 해왔고, 옳은 것이라고 배운 곳도 실상을 살펴보면 그렇지 않을 수 있다는 것을 배웠다. 신상필벌을 명확하게 하는게 중요하다. 그리고 항상 어느 한쪽으로 치우쳤을 경우 문제가 생길 수 있으니 그에 대비해 준비 해야 한다. 그리고 사람이 각자 자신의 이익을 위해서 움직인다는 것도 염두에 둬야한다.
  • 홈페이지만들기/css . . . . 2 matches
         둘 다 있을 경우에는 먼저 지정한 글꼴이 우선 순위를 가진다.
         변화가 생기질 않을 것입니다.
  • 황현/Objective-P . . . . 2 matches
         Objective-J의 경우처럼, 클래스의 선언과 정의를 동시에 한다. (사실 PHP의 구조상, 이럴 수 밖에 없다.)
         GNAssert()의 경우, 두 번째 인자로 @"문자열"을 받지만, 결과적으로는 컴파일 이후 GNString으로 변해야 한다.
  • .bashrc . . . . 1 match
          export DISPLAY=":0.0" # 실패할 경우를 대비(fallback)
  • 05학번만의C++Study . . . . 1 match
          * 적은게 서울에 있어서 ..확인 불가능.ㅋ 실수 미안들! 즐거운 추석 보내 ^^ - [허아영]
  • 05학번만의C++Study/숙제제출/4 . . . . 1 match
          * INT형을 만족하는 숫자를 입력하면 그 숫자를 저장하는 클래스를 생성되었다는 메시지와 함께 생성하라. 만약 입력된 숫자를 가진 클래스가 이미 존재할 경우에는 클래스가 가짖 숫자를 출력하고 해당 클래스를 삭제한다. 프로그램이 종료될떄에는 모든 클래스를 삭제한다. (단 숫자의 출력은 파괴자에서 해야한다.)
  • 0PlayerProject/커널업로드작업정리 . . . . 1 match
          * 큐티 라이브러리를 사용했으나, 매우 느림.. (더군다나 8M..) 그래서 사용하지 않을 계획.
  • 1thPCinCAUCSE/ProblemA . . . . 1 match
         아날로그 시계는 12시간 단위로 동작하며 시침과 분침이 있다. 주어진 시간 동안 시침과 분침이 몇 번 겹치는가를 알고 싶다. 예를 들어, 시작 시각이 11시 1분이고 끝 시각이 3시 20분이면, 이 시간 동안 시침과 분침은 4번 정확하게 일치한다. 각자 자기 시계로 확인 해 보세요. 시작 시각이나 끝 시각에 시침과 분침이 일치하더라도 회수에 포함한다.
  • 2002년도ACM문제샘플풀이 . . . . 1 match
          ''부끄러워할 필요가 없다. 촉박한 시간에 쫓겼다고는 하나, 결국 정해진 시간 내에 모두 풀은 셈이니 오히려 자랑스러워 해야 할지도 모르겠다. 아마 네 후배들은 이런 배우려는 태도에서 더 많은 걸 느끼지 않을까 싶다. 이걸 리팩토링 해서 다시 올리는 것도 좋겠고, 내 생각엔 아예 새로 해서(DoItAgainToLearn) 올려보는 것도 좋겠다. 이번에는 테스트 코드를 만들고 리팩토링도 해가면서 처음 문제 풀었던 때보다 더 짧은 시간 내에 가능하게 해보면 어떨까? 이미 풀어본 문제이니 좀 더 편하게 할 수 있을 것 같지 않니? --JuNe''
  • 2010JavaScript/강소현/연습 . . . . 1 match
         onmousedown="alert('사자자리 유성우');" onmouseup="alert('마우스 누르기 해제');" alt="마우스 누르고 때는 거 확인">
  • 2dInDirect3d/Chapter1 . . . . 1 match
          설마 그래픽카드(Adapter)를 여러개 다는 집은 흔하지 않을 거라 생각하지만, 만일의 사태를 대비해서 모두 만들어 두었다
  • 2ndPCinCAUCSE/ProblemA . . . . 1 match
          (2) 삼각형을 한 개도 만들 수 없으면 0을 출력한다. 예를 들어서, 주어진 성냥개비의 개수가1, 2, 또는 4인 경우에는 삼각형을 한 개도 만들수 없다.
  • 2ndPCinCAUCSE/ProblemB . . . . 1 match
         출력은 표준 출력이다. 출력은 T줄로 이뤄진다. 각 테스트 케이스에 대해서 입력에서 요구한 두 사람의 촌수를 나타내는 정수를 출력한다. 어떤 경우에는 두 사람간의 친척 관계가 전혀 없어 촌수를 계산할 수 없을 때가 있다. 이 때는 -1을 출력한다. T개의 테스트 케이스를 모두 맞혀야 이 문제를 맞힌 것이다.
  • 2학기파이선스터디/if문, for문, while문, 수치형 . . . . 1 match
         헤더 부분의 조건식이 참인 동안 내부의 블록이 반복 수행되는 while문은 조건이 거짓이 되어 빠져나올 경우에 else부분이 수행되지만, break로 빠져나올 때에는 else 블록을 수행하지 않는다. while문 안에서 continue를 만나면 헤더 부분으로 이동하고 break를 만나면 while문을 완전히 빠져나온다.
  • 2학기파이선스터디/모듈 . . . . 1 match
         ['_StringTypes', '__builtins__', '__doc__', '__file__', '__name__', '_float', '_idmap', '_idmapL', '_int', '_long', 'ascii_letters', 'ascii_lowercase', 'ascii_uppercase', 'atof', 'atof_error', 'atoi', 'atoi_error', 'atol', 'atol_error', 'capitalize', 'capwords', 'center', 'count', 'digits', 'expandtabs', 'find', 'hexdigits', 'index', 'index_error', 'join', 'joinfields', 'letters', 'ljust', 'lower', 'lowercase', 'lstrip', 'maketrans', 'octdigits', 'printable', 'punctuation', 'replace', 'rfind', 'rindex', 'rjust', 'rstrip', 'split', 'splitfields', 'strip', 'swapcase', 'translate', 'upper', 'uppercase', 'whitespace', 'zfill']
         AttributeError: 'module' object has no attribute 'b'
  • 2학기파이선스터디/클라이언트 . . . . 1 match
          * Login : 현재 채팅에 사용중인 ID와 사용하고자 하는 ID를 비교하여, 채팅 참가 허가 유무를 확인한다.
  • 3 N+1 Problem/조동영 . . . . 1 match
          흔히 생각하는 알고리즘은 다들 비슷해서 소스가 비슷한 경우가 많어. 그걸 더욱 더 향상 시키려는 노력이 필요하지. 요즘 다른 알고리즘을 생각하려고 노력 중인데 잘 안떠오르네 ㅋ --[강희경]
  • 3D업종 . . . . 1 match
         vc6이나 2003을 쓸 경우, 비슷한 경로에 glut를 복사하고, 프로젝트를 만들때 win32 console로 해서 링커 옵션에 opengl32.lib glu32.lib glut32.lib 파일을 추가합니다.'''
  • 3D프로그래밍시작하기 . . . . 1 match
          * 이것들 이외에도 모델링 데이타를 가져오기 위한 포멧이 여럿 있습니다. x나 3ds등도 쓰입니다. 3ds의 경우 버텍스 모핑 키값을 쓸수 있다 하는데 실효성은 의문입니다. 그리고 그넘은 binary로 되있어서 읽을때 조금 더손이 갈 듯합니다.
  • 3N+1Problem . . . . 1 match
         실행시간(i=1,j=1000000 기준 4초 통과)는 파이썬의 경우 가능할런지 모르겠네요. 나름대로 알고리즘을 보강했는데도 1, 100000에 빌빌 거리니...--[강희경]
  • 3N+1Problem/1002_2 . . . . 1 match
         도저히 수열스럽지 않아서 다시 숫자들 간의 관계를 이리 적어보던중, 지난번의 UglyNumber 에서의 문제접근법(DynamicProgramming)을 해봄. 혹시 앞의 계산값이 뒤의 계산에 이용되지 않을까 생각을 해보다.
  • 5인용C++스터디/다이얼로그박스 . . . . 1 match
         대부분의 대화상자는 modal이다. modal 대화상자는 부모 프로그램이 계속 실행되기 위해서 사용자의 응답을 기다린다. 이 말은 modal 대화상자는 사용자의 입력 확인 없이 부모 프로그램의 어떤 부분도 동작시킬 수 없다. modaless 대화상자는 부모 프로그램의 실행을 막지 않는다. 이것은 다른 부분의 프로그램의 실행을 대화장자가 막지 않는다는 것이다.
  • 5인용C++스터디/비트맵 . . . . 1 match
         즉 복잡한 그림을 출력해야 할 경우는 미리 그려진 비트맵을 사용하는 것이다.
  • 5인용C++스터디/윈도우에그림그리기 . . . . 1 match
         두 경우에 있어서 첫번째 인자는 프로그램의 윈도우에 대한 핸들이다. 두번째 인자는 PAINTSTRUCT 형식의 구조체에 대한 포인터이다. PAINTSTRUCT 구조체에는 윈도우 프로시저가 클라이언트 영역을 그리는 데 사용할 수 있는 정보들이 저장되어 있다.
  • 5인용C++스터디/후기 . . . . 1 match
         중간에 빠졌던 날이 좀 부담됐지만 ! 결국 끝까지 4번 결석 압박을 견뎌내며 스터디를 마무리해서 기쁘네요.ㅋㅋ MFC를 했으니 이제 부담은 많이 줄었고요. 더불어 새 언어를 배우는데도 부담스럽지 않을 거라는 생각도 드네요. 자. 다음 스터디를 향해 전진~!
  • ACM_ICPC . . . . 1 match
         || floyd || . || 그래프 연결성 확인 || . ||
  • AM/20040705두번째모임 . . . . 1 match
          * 실제 돌아가는 결과물을 확인
  • AM/AboutMFC . . . . 1 match
         그나저나 정말 유치하게 써놨군요. 이 자료는 제 이야기를 전제하고 있어서 전혀 친절하지 않습니다.위에 언급한 프세 기사도 내용이 내용이니 만큼 :) 친절한 편은 아니지만 한줄씩 확인하면서 읽으면 알수 있습니다. 처음의 흥미로운 부분과 머릿말들을 보고 MFC 소스를 따라가는 방법만을 보세요.
  • APlusProject/QA . . . . 1 match
         대략 이런식의 테이블을 만들면 돼. 지금 정확히 이름은 못짓겠다. 만들면서 지으면 될 듯. 의미는 어떤 요구 사항이 어떻게 설계 되서 무엇으로 구현 되었는가를 번호 같은 걸로 연결 해주면 되는거야. 최종 문서들(요구 사항 정의서, 요구 사항 분석서, 기본 설계서, 상세 설계서, 소스 코딩 문서) 보고 만들면 되고 아마도 PL의 도움이 필요할 거야. PL에게는 너가 직접 연락하면 될거야. PL에게 내가 이미 이야기 해 놨으니 바로 알아들을거야. 간단히 되는 대로 올려줘. 그럼 내가 확인하고 고칠 점 있으면 알려줄께. --재동
  • AcceleratedC++/Chapter2 . . . . 1 match
          저는 이제서야 AcceleratedC++을 보고 있는데요. loop invariant란 r번 수행했다라는 것을 말하지 않을까요?
  • AcceptanceTest . . . . 1 match
         QualityAssurance (QA)는 XP process의 주요 부분이다. 몇몇 프로젝트들의 QA는 분리된 그룹으로부터 수행되어지지만, 어떤 프로젝트들에서의 QA는 개발팀 스스로에 의해 수행되어진다. 각각의 경우에서 XP는 좀 더 QA와 관계있는 개발을 요구한다.
  • ActiveXDataObjects . . . . 1 match
         마이크로소프트 ADO(ActiveX Data Objects)는 데이터 소스에 접근하려고 고안된 COM객체이다. 이것은 프로그래밍 언어와 데이터 베이스 사이의 층을 만들어준다. 이 층은 개발자들이 DB의 구현부에 신경쓰지 않고 데이터를 다루는 프로그램을 작성하도록 해준다. ADO 를 이용할 경우, 데이터베이스에 접근하기 위해서 SQL 을 알 필요는 없다. 물론, SQL 커맨드를 수행하기 위해 ADO 를 이용할 수 있다. 하지만, SQL 커맨드를 직접 이용하는 방법은 데이터베이스에 대한 의존성을 가져온다는 단점이 있다.
  • AdvancedJS . . . . 1 match
          * 개인적으로 자바스크립트에 관심도 있고 해서 세미나를 들으러 왔다. 근데 가끔 웹페이지에서 자바스크립트 소스를 보면 C++이랑 비슷하게 쓰길래 그냥 비슷한 언어인가 싶었는데, 이번에 들어보면서 오히려 다른 점이 크게 부각된 느낌이다. C++이랑 비교해서 상속 방식도 다르고(프로토타입 상속) this의 개념도 좀 다르고 함수가 객체로 취급되고 등등. 물론 나중에 따로 책을 보면서 공부를 하긴 하겠지만 아마 이번에 배운 내용은 책에서 쉽게 찾아볼 수 없지 않을까 싶다. - [서민관]
  • AdventuresInMoving:PartIV . . . . 1 match
         위의 테스트 케이스를 보면 처음에는 거리가 100인 주유소에 무조건 가야합니다. 그러면 기름은 0이 되고, 스터디때 말한 방법으로 하면 앞의 200까지를 살피고, 가장 작은 가격이 있는 곳인 (200, 777) 까지 갈 수 있는 기름 100을 넣고 출발합니다. 그러나 여기서 살펴보면 최적의 해는 여기서 50만큼의 기름만 넣고, 150의 지점에서 또 50의 기름을 넣어서 (200,777)에 가는 경우입니다. -- 보창
  • AnEasyProblem/강소현 . . . . 1 match
         == Trial and error ==
          * Compile error
          * Runtime error
          * 2^20 = 1048576 으로 1000000보다 크니까 배열의 크기를 20으로 잡았었는데, 1과 0을 옮기면서 이 숫자보다 더 커지는 경우를 고려하지 못했습니다. 그 결과 1~1000000 중에서 4개의 숫자가 맨 앞의 1이 짤려서 숫자가 작게 출력된! ;ㅅ; 언뜻 보길래 맞은 줄 알아서 뻘짓을 많이 한 ㅋㅋ poj는 죄가 없어! 내가 바보임 ㅠㅠ
  • AncientCipher/강소현 . . . . 1 match
         == Trial and Error ==
  • AppletVSApplication/영동 . . . . 1 match
          * 장점: 클라이언트/서버나 그 외의 네트웍 어플리케이션을 개발할 경우에 이익이 많다.
  • AseParserByJhs . . . . 1 match
          // 일반적인 ascii export plug in을 사용했을 경우
  • AssemblyStudy . . . . 1 match
         || 1 ||VMware로 부트스트랩 확인 || . ||
  • Athena . . . . 1 match
          (영상을 이용한 변환에서 0이 있는 영상의 경우 나눗셈할수 없음. 1로 나눌때랑 같게 했음)
  • AustralianVoting . . . . 1 match
         각 테스트 케이스에 대해 당선된 후보의 이름 한 줄, 또는 동률을 이룬 후보들의 이름이 들어있는 여러 줄을 출력한다. 두 개 이상의 테스트 케이스가 있는 경우 각 결과는 빈 줄로 구분한다.
  • AustralianVoting/문보창 . . . . 1 match
         Presentation Error를 잡아야 한다. 수행시간과 메모리사용량 또한 만족할 만한 수준이 아니다.
  • BeeMaja/변형진 . . . . 1 match
          if($w<1||$w>100000) return "Error";
  • BlogLines . . . . 1 match
         [1002] 의 경우는 FireFox + Bloglines 조합을 즐겨쓴다. (이전에는 FireFox + Sage 조합) 좋은 점으로는, 쓰는 패턴은, 마음에 드는 피드들이 있으면 일단 주욱 탭으로 열어놓은뒤, 나중에 탭들만 주욱 본다. 그리고, 자주 쓰진 않지만, Recommendations 기능과 Subscribe Bookmarklet, feed 공유 기능. 그리고, 위의 기능들을 다 무시함에도 불구하고 기본적으로 쓸모있는것 : 웹(서버사이드)라는 점. 다른 컴퓨터에서 작업할때 피드 리스트 싱크해야 하거나 할 필요가 없다는 것은 큰 장점이라 생각. --[1002]
  • BlueZ . . . . 1 match
         주의점) 커널 2.4의 경우 스택에 RFCOMM 관련 스택이 구현 안된 버전들이 존재하기 때문에 해당 사이트에서 버전에 맞는 패치를 한뒤 커널을 새로 올려야함.
          perror("opening socket");
          if( num_rsp < 0 ) perror("hci_inquiry");
          if( status < 0 ) perror("uh oh");
          if( status < 0 ) perror("uh oh");
  • BoaConstructor . . . . 1 match
          5. 정식 버전은 TDD 로 다시 DoItAgainToLearn. WingIDE + VIM 사용. (BRM 을 VIM 에 붙여놓다보니. 그리고 WingIDE 의 경우 Python IDE 중 Intelli Sense 기능이 가장 잘 구현되어있다.)
  • BookTemplate . . . . 1 match
         [노스모크]에서는 ISBN 링크가 되는 책소개의 경우 링크를 상단에, 서평을 하단에 적는것을 원칙으로 한다.
  • BruteForce . . . . 1 match
         알고리즘 분야쪽에서 소위 말하는 '무대포 알고리즘' 에 대한 지칭. 답을 찾기 위해 모든 경우의 수를 다 수행해보는 알고리즘을 지칭.
  • B급좌파 . . . . 1 match
         맨날 '학연이네 지연이네 지역감정이 어쩌네' 하면서, 무심코 나는 그 사람에게 폭력을 행사한 것이리라. 차라리 그냥 'ZeroPage 에서 활동중 누구입니다' 라고 할걸. 온라인 모임이름이라면 그래도 1년에 10만 이상 못들어가는 대학교보단 그래도 덜 폭력적이련만. (하긴 결국 중대모임이므로 똑같으려나..) 나의 언어에선 당연한 세상이 다른 사람들에겐 당연할 수 없는 세상인 경우가 있다. 순간에 대해서 민감할 수 있었더라면. 깨어있었다면. -- ["1002"]
  • C++Seminar03 . . . . 1 match
          1. 사회자 한명과 2인 1PC 또는 3인 1PC 로 PC 1대당 한조가 되어 PairProgramming 식으로 진행. 사회자는 간단한 개념을 설명하고 개념에 대한 실습(?) 또는 적용된 코드작성을 Pair 해본다. (이런식으로 진행할경우 장소에 문제가 될 수도 있을것 같네요. 실습실 하나를 제로페이지가 점령할수도 없는 일이고..-_- 강의실에서 간단한 설명 -> PC 실로 이동.. 정도가 대안이 될까요? ) --["임인택"]
  • C++스터디_2005여름 . . . . 1 match
          왠만하면 헤더파일 .h 말고 파일명 없는걸로 쓴는게 좋지 않을까요??
  • C++스터디_2005여름/도서관리프로그램 . . . . 1 match
          └처음부터 전부를 만들려고 할 필요 없어용~^^ 음..대게 이경우에는 자료구조 정하고 하나씩 차근차근 테스트 해나가면서 만들면 될것 같아요. 안된다고 포기하면 미오.ㅠ.ㅜ ㅎㅎ 그리고 컴파일러가 머리가 나쁜관계로 대게 46개라도 실제 에러는 그 반수도 안된다는~ 힘내보아요~'ㅇ')/ - [조현태]
  • C/Assembly/포인터와배열 . . . . 1 match
         위의 경우 t는 조작 가능하지만 p는 조작 가능하지 않다.
  • CC2호 . . . . 1 match
         || [주민등록번호확인하기] || . || . ||
  • CCNA . . . . 1 match
          * ethernet: CSMA/CD- 이더넷 통신에서 사용하는 프로토콜이다. 회선이 사용중이지 않을때 전송하고 충돌이 생기면 일정시간후 재전송한다.
  • CMM . . . . 1 match
         미 국방부과 계약하려는 업체의 경우 최소 CMM Level 3 이상이여야 함.
  • COM/IUnknown . . . . 1 match
         정상규현된 컴포넌트라면 인터페이스 포인터를 비교하는 것을 통해서 각 객체가 같은 컴포넌트의 인스턴스인지 확인이 가능하다.
  • CPPStudy_2005_1 . . . . 1 match
          [http://www.acceleratedcpp.com/details/msbugs.html VS6 코드 수정] 책에 나온 소스를 VS6에서 이용할 경우 발생하는 문제점에 관한 내용이 있습니다.
  • CVS/길동씨의CVS사용기ForLocal . . . . 1 match
         아무런 메세지가 나오지 않지만, 세팅에 적은 디렉토리가 c:CVSLocal 에 생성되었음을 확인할 수 있다. 이미 디렉토리가 있다면 해당 디렉토리 내부에 CVSROOT 라는 이름의 하위 디렉토리가 생길 것이다.
  • CVS/길동씨의CVS사용기ForRemote . . . . 1 match
         원하는 디렉토리에서 배치 파일을 실행해서 cvs가 실행되는지 확인하고 로그인을 한다. (문서의 작성자는 자신이 알고 있는 서버를 이용하였으니 개의치 마세요.)
  • CarmichaelNumbers/조현태 . . . . 1 match
          일단 소수이면 안되기 때문에 살포시 저번에 [FactorialFactors] 에서 사용했던 알고리즘을 사용해서 단시간에 소수인지 확인하도록 하였다.
  • CauGlobal/Episode . . . . 1 match
          1. 이때 꼭 같은 곳으로 가는 항공편일 필요는 없습니다. 예를들어, 샌프란시스코로 가는 JAL 항공권일 경우, 서울->동경 구간이 WAIT 상태라면, LA로 가는 예약에서 서울->동경 구간을 확보한다면 되는거죠.
  • CauGlobal/ToDo . . . . 1 match
          * 추가일정: 임구근 - 확인 및 추가 요망(jeppy쪽)
  • CeeThreadProgramming . . . . 1 match
         VS.NET에서도 함수이름을 인식하지 못하는 경우 프로젝트 세팅에서 MFC라이브러리를 사용하도록 해보세요.
  • Celfin's ACM training . . . . 1 match
         || No. || Problem No. || Problem Name || Error || Source Code ||
  • ClearType . . . . 1 match
         그림을 보면 잘 이해할 듯. 4번째의 경우가 클리어 타입이 사용하는 방식이다.
  • CodeRace . . . . 1 match
         관중들은 원하는 경우 미리 비워둔 탁자에서 현장 팀을 구성해서 중간에라도 대회 참여가 가능합니다.
  • CodingStandard . . . . 1 match
         진행해본 프로젝트들의 경우, 주로 자바는 자바 코딩스타일을, Python 은 Smalltalk Style 을 이용했었다. --["1002"]
  • CollaborativeFiltering . . . . 1 match
          ex) 이 user set 에서 item j 에 대해서 높은 점수 (rating)을 주었을 경우, user i 에게 item j 를 추천한다.
  • CompleteTreeLabeling . . . . 1 match
         입력된 각 줄에 대해 한 줄의 결과를 출력한다. 그 줄에는 위에서 설명한 조건을 만족시키면서 k진 트리에 레이블을 붙이는 경우의 수를 출력한다.
  • ComputerNetworkClass/Exam2004_2 . . . . 1 match
         송신자측 오류 제어에 대해 데이터 512byte 를 송신할때의 경우로 예를 들어 설명하시오
  • ComputerNetworkClass/Exam2006_2 . . . . 1 match
         3. PEM 으로 이메일 보낼경우, 보내지는 내용들 구조와 함께 설명. 같이 보내지는 첨부 파일은 a.jpg
  • ComputerNetworkClass/Report2006/BuildingWebServer . . . . 1 match
         * 제작 작성해본 결과 HTTP Application 의 기본적인 사항은 에코서버의 연장선에 있습니다. RFC1945 를 확인하면 아주 단순한 형태의 구현만으로도 충분히 간단한 웹 서버의 동작을 구현하는 것이 가능합니다. (물론 이는 웹 브라우저가 RFC1945 의 HTTP-message BNF 의 가장 단순한 형태를 지원한다는 가정하에서 입니다.) CGI, 로드밸런싱을 이용할 수 있을 정도의 구현이 아닌이상 이는 단순한 에코서버의 연장선과 크게 다르지 않습니다. (어쩌면 모든 네트웍 프로그램이 에코서버일지도 -_-;)
  • ConverterMethod . . . . 1 match
         스몰토크의 String 클래스에 보면 asDate라는 메세지가 있다. 켄트벡이 경험한 정말 극단적인 경우에 하나의 객체마다 다른 형태로 변환시켜주는 Converter Method가 30개씩 있었다고 한다. 새로운 객체가 추가될때마다 저 30개의 메소드를 모두 추가해줘야만 했던 것이다.
  • CooperativeLinux . . . . 1 match
         신기하다. 윈도우즈 쓰레드로 돌아가는 리눅스라고 한다. 이전에 BeOS 같은 경우를 본적은 있지만(OS on OS) 음.. 리눅스 커널이 윈도우 쓰레드로 돌아간다..라.. 근데 안전한지는 잘 모르겠다!
  • Cpp/2011년스터디 . . . . 1 match
          * 보니까 06년도에 06학번을 대상으로 테트리스 만들기 라는 활동도 있었고 10년 데블스캠프에서도 테트리스가 언급되었던것 같은데 아예 새싹교실할때 테트리스를 포함해보는건 어떨까. 기본적인 블럭낙하에 줄이 없어지고 점수가 표시되는 정도라면 잘되는 새싹반은 완성도 가능하지 않을까?
  • CppStudy_2002_1/과제1 . . . . 1 match
          * 영동의 소스 : 먼저 전체적으로 02학번의 경향이 전역 변수를 쉽게 선언하는거 같다. 전역변수는 나중에 프로그램이 커질 경우에는 다른 여러 변수와 헷갈릴 수 있기 때문에 가능하면 피하는게 좋다.
  • CppStudy_2002_2 . . . . 1 match
          언제나 처음의 마음을 잊지말구 해나간다면 우리 스터디는 성공하지 않을까?? -세연
  • CreativeClub . . . . 1 match
          * wiki 제작이 잘 되었을 경우 정모에서 많은 글을 등록한 사람에게 지원을 하는 방안도 생각.
  • CryptKicker2 . . . . 1 match
         각 테스트 케이스에 대해 각 줄을 복호화하여 표준 출력으로 출력한다. 가능한 암호화 방법이 두 개 이상있으면 그 중 아무 결과나 출력해도 된다. 복호화할 수 없는 경우에는 다음과 같은 결과를 출력한다.
  • Curl . . . . 1 match
          Ajax프로그래밍을 해본적이 없어서 Gmail에서 관찰한 내용을 기준으로 해보면... 아마도 curl 로 만들어진 빠른 속도의 애플리케이션을 이용해서 좀더 다양한 처리 같은게 가능하지 않을까요? 뭐 그래픽 에디터를 activex를 이용하지 않고도 만들 수 있다던지.. 그리고 네트워크가 disconnect된 상태에서 사용자가 작업한 내용을 보관하고 있다가 connect된 상태로 바뀌면 작업을 처리하는 일같은 것도 가능할 것 같고요.(ajax가 jscript+dhtml을 이용한 기술이라고 아는데 이런것도 가능한지는 모르겠네요.;;) 아무래도 로컬의 runtime위에서 작동을 하는 만큼 유저의 입장에서 좀더 다양한 상용의 용도가 있을 것이라는 생각이드네요. 물론 runtime 이 있기 때문에 상업적 표준이 되기전에는 기업용 시장에서만 팔릴 것들에만 쓰일지도 모르겠고요. - [eternalbleu]
  • CuttingSticks . . . . 1 match
         절단 순서에 따라 요금이 달라진다는 것은 그리 어렵지 않게 알 수 있다. 예를 들어 10미터짜리 막대를 한 쪽 끝으로부터 2, 4, 7미터 위치에서 자르는 경우를 생각해보자. 자를 수 있는 방법은 매우 다양하다. 처음에 2미터 위치에서 자르고 그 다음에 4미터 위치, 마지막으로 7미터 위치에서 자를 수도 있다. 이렇게 하면 요금은 10+8+6=24가 된다. 첫번째 막대는 10미터였고, 그 다음 막대는 8미터였고, 마지막 막대는 6미터였기 때문이다. 하지만 일단 4미터 지점에서 자르고 2미터 지점에서 자른 다음 마지막에 7미터 지점에서 자르면 요금이 10+4+6=20이 되므로, 앞에서 잘랐던 방법으로 하는 것보다 요금을 줄일 수 있다. 어떤 막대가 주어졌을 때, 최소 절단 요금을 구하는 프로그램을 만들어보자.
  • C언어시험 . . . . 1 match
         제가 내린 결론부터 말씀드리자면, 새내기들의 불만을 터뜨리게 한 가장 큰 원인이 '예상하지 못한 문제가 출제되었다' 인것 같습니다(학생들은 C언어에 대한 문제가 주를 이룰 것이다라는 생각을 하고 있었을 테니까요). 사람들의 이야기를 들어보니 ''교수님의 속도와 학생들이 받아들이는 속도가 맞지 않았다.'' 라는 생각이 들었습니다. 교수님께서 ''책에 있는 내용은 스스로 공부할수 있으니 저는 책에 나오지 않는 내용을 강의하겠습니다.'' 와 비슷한 말씀을 하셨다고 합니다. (새내기가 아닌) 한 학생이 교수님께 찾아가 강의의 난이도를 높여 달라는 말도 했다고 하구요(이 일 이후에는 C언어에 대한 내용을 skip하는 경우가 많았다고 하네요).
  • DPSCChapter2 . . . . 1 match
         Validation. 스캔되고 입력되어진 form들은 각 필드들에 대해 일관성보증과 모든 폼이 완전히 채워졌는지에 대한 보증을 위해 검증작업을 거친다. 불완전하거나 적절치 못한 입력은 시스템에 의해 reject되고, 재확인을 위해 요구자에게 도로 보내진다.
  • DataCommunicationSummaryProject/Chapter11 . . . . 1 match
          * 광케이블의 경우 중간에 신호확장을 거치기 전까지 초당 1000테라비트(페타비트)까지도 보내지만 무선은 이렇게 할 수 없다. 하지만 통신의 말단부분(Local Loop)에선 다르다. 도심 한가운데다가 광케이블을 파묻기 위해 다 뒤엎진 못하지 않는가...;;
  • DataCommunicationSummaryProject/Chapter8 . . . . 1 match
          * Gateway 소프트웨어가 이메일 서버에서만 돌아야 한다는 법은 없다. 개별 PC에서도 돌아 가게 할 수 있고, 그경우 장점은 ISP나 법인 서버를 사용하여 어떤 이메일 시스템과도 같이 동작하게 만들 수 있다. 단점은 항상 컴퓨터를 켜 놓아야 한다는 것이다.
  • DataStructure . . . . 1 match
          * 이번 학기에 어차피 듣는 것이긴 하지만 미리 공부해 두고 가면 좋지 않을까..
  • DataStructure/String . . . . 1 match
          같은 것이 없는 경우 - abcabcac f(j) = -1 -- [황재선]
  • Debugging . . . . 1 match
          - 분할정복을 하다가 생길수 있는 부분은 나무만 보게 되고 숲을 보지 못하게 되는 경우가 있다. 주의!
  • DefaultValueMethod . . . . 1 match
         의사소통을 더 쉽게 해주고, 상속될때에 오버라이딩 할 수 있는 여지를 남겨준다.(상속관계마다 상수가 다른 경우를 말하는 것 같다.)
  • DesignPatterns/2011년스터디/1학기 . . . . 1 match
          1. 상속구현은 커플링을 늘리는 것 + 찾기 힘든 버그를 발생시키는 원인 이라 매우 슬픈거 같다.
  • DesignPatternsAsAPathToConceptualIntegrity . . . . 1 match
         OMT, Coad-Yourdon, Shaer-Mellor 의 경우 data driven 이며, system modularization principle 로서 데이터 의존성을 들었다.
  • DesktopDecoration . . . . 1 match
         MacOS에 존재하는 가장 특징적인 기능중의 하나로 윈도우 식의 Alt+Tab 창이동의 허전함을 완전히 불식시킨 새로운 인터페이스이다. [http://www.apple.co.kr/macosx/features/expose/ Expose]에서 기능의 확인이 가능하다.
  • DevCppInstallationGuide . . . . 1 match
          해주시면 컴파일시 에러가 났을 때 쉽게 확인가능합니다. 글꼴은 둘다 굴림체로 하는것이 보기에 좋더군요. :) [이영호]
  • DirectVariableAccess . . . . 1 match
         와드 아저씨의 말로는, '클래스에 아주 적은 양의 메소드만 존재한다면, getter/setter를 추가하는 것만으로도 메소드의 수가 두배가 되어버린다. 이는 전혀 사용되지 않을 유연성을 위해 쓸데없이 갯수를 늘린 것이다.' 라고 한다.
  • DispatchedInterpretation . . . . 1 match
         그.러.나. 객체의 정보가 다른 객체에 영향을 미쳐야만 할때가 있다. 간단할때는, 그냥 인코딩된 오브젝트에 메세지를 보내면 수월하게 해결이 가능하다. 하지만 복잡한 경우에는 힘들다. 문제는 수백의 클라이언트들에게 모든 타입의 정보에 대해 명시적으로 case 형태의 구조를 만들기를 원하지 않는다는 것이다.(??)
  • Django스터디2006 . . . . 1 match
         || 9/21 || Django 환경 구축 + POST, GET , SESSION, COOKIE 에 대한 설명, Django로 만들고 싶은것에 대한 논의(과제 확인, 웹서버 부분 못들은 사람 물어봐서 했는지 체크) || 상협, 지훈, 우용, 준석, 지원 ||
  • DocumentMode . . . . 1 match
         해당 토론이 안정화 되어서 의견이 모아졌을때, 또는 글이 너무 길어졌을 경우, 사람들이 다같이 인정하는 안정화된 부분에 대해서 정리를 할 수 있다.
  • DocumentObjectModel . . . . 1 match
         XML 에 대해서 파싱하는 API 방식 이야기. DOM 모델이냐 SAX 모델이냐 하는것. 인터페이스 상으로는 DOM 이 쉽긴 함. SAX 는 좀 더 low-level 하다고 할까. (SAX 파서를 이용해서 DOM 모델을 만들어내는 경우가 많음) SAX 는 Tokenizer 가 해당 XML 문서를 분석하는 중의 이벤트에 대한 이벤트 핸들링 코드를 작성하는 것이므로. 그대신 모든 도큐먼트 노드 데이터가 필요한건 아니니, SAX API 로 XML을 파싱하면서 직접 개발자가 쓸 DOM 객체를 구성하거나, 아니면 XPath 를 이용하는게 좋겠지.
  • Doublets/황재선 . . . . 1 match
          * Sample Input은 동작하는데 모든 경우에 되는지는 모르겠다.. 채점 사이트가 SE5.0을 지원하면 올려봐야지..
  • DrawMacro . . . . 1 match
         윈도우즈의 경우는 다음의 파일을 받아서 직접 압축을 풀어준다. {{{applets/TWikiDrawPlugin/}}}twikidraw.jar 및 *gif 파일이 있게끔 해야 한다.
  • DylanProgrammingLanguage . . . . 1 match
         저걸 빌드하면 엄청나게 많은 빌드로그를 토해낸 후에 (*nix의 경우)자기의 홈 디렉토리에 실행파일이 생성된다.
  • Eclipse/PluginUrls . . . . 1 match
          * 가끔 동기화가 안되는 경우가 생기기도 한다.
  • EcologicalBinPacking/문보창 . . . . 1 match
         모든 경우의 수를 일일이 세지 않고 풀수 있는 방법은 없을까?
  • EffectiveSTL . . . . 1 match
          * Scott Meyers's Trilogy 라고 불리는 시리즈의 3번째 것이다. ''(EC++, MEC++, ESTL)'' 나의 경우에는 일단 CVS에 대한 정리를 끝내고 한서로 읽을 생각이며, 읽으면서 기존의 부분에 보충과 함께 약간의 정리를 해나갈 계획이다. 번역서가 곽용재씨가 직업한 것이라서 한서에대한 걱정도 적은편이다. - [eternalbleu]
  • EightQueenProblem/kulguy . . . . 1 match
          성능이란 것을 크게 수행 시간(時)과 수행시 필요한 메모리(空)라는 2가지 측면에서 본다면 메모리쪽의 성능을 희생해서 수행 시간을 끌어올리는 것을 말합니다. 즉, 자주 쓰일 것 같은 계산 결과는 매번 계산하지 않고 메모리에 담아두거나 외부에 저장했다가 가져오는 식이 되는 거죠. 저같은 경우 문제를 풀기 위해 체스판 위에 퀸 하나가 놓일 때마다 다음 퀸이 놓일 수 있는 "가능한 자리를 계산"해서 그 다음 퀸을 배치하는 방식을 사용했습니다. 이 때 "가능한 자리를 계산"한 결과를 메모리에 담아두고 계속 이용하였죠. 참고로 이 용어와 개념들은 김창준님이 마소에 기고하신 파이썬 관련 기사에서 비스므리 인용한 것 입니다. 인용이란 본래 그 내용을 정확히 전달해야 하는데 -_-;;; 마소 기사를 직접 참고해보시기 바랍니다 :)
  • EightQueenProblem/김준엽 . . . . 1 match
         1번문제를 제대로 이해 못해서 실수로 모든 경우를 구해버렸습니다. -0-;;;
  • EightQueenProblem/이선우3 . . . . 1 match
         n-Queens Problem을 해결하는 플레이어. 자신이 생각하는 알고리즘(여기서는 play 메소드)에 따라 보드에 체스 말 중, 퀸을 배열하고 올바른지 확인한다.
  • EightQueenProblem/임인택 . . . . 1 match
          8bit == 1byte 라는 생각을 하고 비트연산만으로 할 수 있을것 같다는 생각을 하였다. 하지만 이 경우는 n-Queen 으로까지 확장하기까지 힘들고 간단한 index 로 값을 참조할수 있는 배열에 비해 비능률적인 방법이다. 단지 속도가 조금 빠를 것으로 믿었는데.. 빨라봤자 얼마나 빠르겠어.--;
  • EightQueenProblem/정수민 . . . . 1 match
          void reset(); //체스판에 0이 남아있지 않을때 초기화
  • EightQueenProblem/햇병아리 . . . . 1 match
         모든 경우의 수에 대해 공격여부 조사 --;
  • EightQueenProblem2 . . . . 1 match
         저의 경우가 그렇지요..ㅡㅡ 소스를 어케 만들었길래 고치는데.. 헤매는지.. 쿨럭.. --선호.
  • EmbeddedSystem . . . . 1 match
          * 임베디드 시스템은 더 큰 시스템의 구성요소를 이루거나 사람의 개입 없이 동작하도록 기대되는 하드웨어와 소프트웨어이다. 전형적인 임베디드 시스템은 전원이 켜져 동작하기 시작하면 전원이 꺼질 때까지 멈추지 않는 특수한 용도로 사용하는 일부 응용 프로그램을 시동하는 롬에 들어 있는 소프트웨어를 포함하는 단일 보드 마이크로컴퓨터이다. 임베디드 시스템은 운영체제를 포함하거나 단일 프로그램으로 작성할 수 있을 만큼 단순할 수 있다. 시스템에 필요 없을 경우 키보드, 모니터, 직렬 통신, 대용량 기억 장치와 같은 일반적인 주변 장치나 사용자 인터페이스 소프트웨어를 지원하지 않는다.그리고 실시간성을 요구할 때도 있다.
  • Error 발생시 풀리지 않을 경우 확인 . . . . 1 match
         1. 컨트럴 ID 가 제대로 연결되어 있는지 확인하라.
  • Euclid'sGame/강소현 . . . . 1 match
         == Trial and Error ==
  • ExploringWorld/20040315-새출발 . . . . 1 match
          * 최악의 상황 경우 Debian 설치를 해야 되기 때문에 미니 CD준비하기
  • ExtremeProgrammingExplained . . . . 1 match
         [임인택]이 도서관에 신청해둠. (다시 확인해보니 아닌것같다...-_-. 누가 먼저 한듯.. ㅎㅎ)
  • FileInputOutput . . . . 1 match
          System.out.println("Error : "+ e.toString()); {}
  • ForeverStudent . . . . 1 match
         학생으로의 부분적 기간이 종결되는 순간 자기 스스로를 학생의 무리에서 제외시켜 버리는 경우가 있다. 하지만 우리는 영원히 학생일 뿐이다. 배울 것이 있는데, 내 나이가 몇이고 내가 뭘하고 몇 학년인지 따질 필요가 있겠는가.
  • FullSearchMacro . . . . 1 match
         그런데, gybe 경우에 해당되는 페이지 이름이 불규칙해서 PageList를 쓸 수가 없습니다. FullSearch가 날짜별 정렬을 지원하지 않는다면, MoniWiki의 기능 중에 어떤 걸 쓰면 될까요? --[kz]
  • FundamentalDesignPattern . . . . 1 match
         DesignPatterns 의 패턴들에 비해 구현이 간단하면서도 필수적인 패턴. 전체적으로 가장 기본이 되는 소형 패턴들. 다른 패턴들과 같이 이용된다. ["Refactoring"] 을 하면서 어느정도 유도되는 것들도 있겠다. (Delegation의 경우는 사람들이 정식명칭을 모르더라도 이미 쓰고 있을 것이다. Java 에서의 InterfacePattern 도 마찬가지.)
  • GDG . . . . 1 match
          * 대학의 이름(중앙대)을 걸고 설립을 할 수는 있어도 동아리의 이름(ZeroPage)을 걸고 설립을 할 수는 없음 (확인 요망)
  • GRASP . . . . 1 match
         그 외에 [DavidParnas]의 On the Criteria To Be Used in Decomposing Systems Into Modules에서 [InformationHiding] 개념을 소개했고 [DataEncapsulation]과 혼동하는 경우가 많았다고 말해주네요. [OCP]에 대해서도 이야기해 주고 ...
  • Gof/AbstractFactory . . . . 1 match
          * 보통의 경우 ConcreteFactory 클래스의 단일 인스턴스는 수행시간(run-time)중에 생성된다.
  • GoodExams . . . . 1 match
         "갑의 종류 8가지를 나열하라"와 같은 문제는 채점하기 편리하다. 하지만 이런 류의 지식은 시험 자체를 위한 지식에 지나지 않는 경우가 대부분이다. 더욱 큰 문제는 대부분의 시험이 이런 식으로 이루어진다면 학생들의 평소 공부도 그런 쪽으로 향방이 정해진다는 점이다. 고등학교식으로, 생소한 단어가 출현하면 밑줄부터 긋고 그 말을, 간혹 사전적 정의와 함께, 외우는데 전력을 기울인다.
  • Google/GoogleTalk . . . . 1 match
          print $response->error_as_HTML if $debug;
         경우에는
  • Googling . . . . 1 match
          ''stop word: at, and 와 같은 일반적인 단어들은 검색을 할 경우 그 결과가 너무 많기 때문에 구글에서 제외시킨다. 이런 단어를 추가시켜서 검색하기 위해서는 검색어 앞에 + 를 붙여야한다.''
  • HASH구하기/권정욱,곽세환 . . . . 1 match
          cout << "확인할 텍스트를 입력하세요 : ";
  • Hacking/20040930첫번째모임 . . . . 1 match
          - 가볍게 읽어보신후 자신의 컴퓨터는 어떤 포트가 열려있는지 확인해보세요
  • HanoiTowerTroublesAgain! . . . . 1 match
         공을 한 번에 하나씩, 번호가 커지는 순서로 기둥에 끼우는 게임을 한다(즉 1번을 끼우고 나서 2번을 끼우고, 그리고 나서 3번을 끼우고 하는 식으로 공을 기둥에 끼움). 더 이상 서로 밀어내지 않도록 공을 끼울 수 없게 되면 게임이 끝난다. 게임의 목표는 최대한 많은 개수의 공을 끼우는 것이다. 위에 있는 그림에는 기둥이 네 개인 경우에 최대한 많은 공을 끼운 결과가 나와 있다.
  • HardcoreCppStudy/두번째숙제 . . . . 1 match
          * this포인터란 무엇이며 사용되는 경우를 찾아보세요.
  • HardcoreCppStudy/두번째숙제/CharacteristicOfOOP/변준원 . . . . 1 match
         위에서 살펴볼 캡슐화와 정보 은폐의 이점은 우선 객체 내부의 은폐된 데이타 구조가 변하더라도 주변 객체들에게 영향을 주지 않는다는 것이다. 예로서, 어떤 변수의 구조를 배열(array)구조에서 리스트(list) 구조로 바꾸더라도 프로그램의 다른 부분에 전혀 영향을 미치지 않는다. 또한 어떤 함수에 사용된 알고리즘을 바꾸더라도 signature만 바꾸지 않으면 외부 객체들에게 영향을 주지 않는다. 예를 들어, sorting 함수의 경우 처음 사용된 sequence sorting 알고리즘에서 quick sorting 알고리즘으로 바뀔때 외부에 어떤 영향도 주지 않는다. 이러한 장점을 유지보수 용이성(maintainability) 혹은 확장성(extendability)이라 한다.
  • HardcoreCppStudy/첫숙제/ValueVsReference/변준원 . . . . 1 match
         반환되는 값이 여러 개이거나 배열 전체를 전달하는 경우에 주로 이용.
  • HardcoreCppStudy/첫숙제/ValueVsReference/임민수 . . . . 1 match
          참조전달에 의한 함수를 사용하였을경우 변수 자체의 값이 바뀌기 때문에 위와 같은 결과가 나옵니다.
  • HelpOnEditing . . . . 1 match
         위키 포매팅 문법 (위키 마크업)을 테스트하고 싶으시면 WikiSandBox로 가셔서 [[GetText(EditText)]]를 누르시거나 [[Icon(edit)]] 아이콘을 누르시면 WikiSandBox에서 테스트 해보실 수 있습니다. 실제로 저장하지 않더라도 미리보기 버튼을 누르시면 위키 포매팅 결과를 그때 그때 확인하면서 연습하실 수 있습니다.
  • HelpOnSmileys . . . . 1 match
         편집 화면에서 {{{[[SmileyChooser]]}}}를 넣고 싶은 경우에는 아래와 같이 EditTextForm 페이지를 편집해주셔야 합니다.
  • HelpOnTables . . . . 1 match
         테이블의 속성을 넣을 필요가 있는 경우가 있습니다. 예를 들어 테이블 셀의 색상이나 폭 등등의 몇가지 테이블 속성을 사용하면 테이블의 가독성을 높일 수 있을 것입니다. 이를 위하여 테이블 속성을 정해주는 문법을 지원합니다. 속성은 꺽쇠 괄호를 사용해 {{{<...>}}} 형태의 문법으로 `||` 마크 다음에 바로 붙여서 써주어야 합니다.
  • HostFile . . . . 1 match
         windows 의 경우는 system32/drivers/etc/host 라는 화일.
  • HowManyFibs? . . . . 1 match
         입력에는 여러 개의 테스트 케이스가 들어있다. 각 테스트 케이스는 두 개의 음이 아닌 정수 a와 b로 구성된다. a=b=0이면 입력이 종료된다. 그렇지 않은 경우에는 a≤b≤10<sup>100</sup>이다. a와 b가 입력될 때 앞부분에 불필요한 0은 전혀 붙지 않는다.
  • HowManyZerosAndDigits/임인택 . . . . 1 match
          if( !(quotient==0 && remainder==0)) // 제일 상위자리가 0인 경우는 넣지 않는다.
  • HowToEscapeFromMoniWiki . . . . 1 match
         이 문서가 제시하고 있는 내용은 완전하지 않을 수 있으며, 기존 MoniWiki 문서 데이터를 백업하지 않고 이 방법을 적용하여 발생하는 문제에 대해 어떠한 책임도 지지 않습니다.
  • HowToStudyRefactoring . . . . 1 match
          * Minimize Comments : 코드의 가독성을 떨어뜨리지 않거나 혹은 오히려 올리면서 주석을 최소화하도록 노력한다. 이렇게 하면, 자동으로 리팩토링이 이뤄지는 경우가 많다.
  • HowToStudyXp . . . . 1 match
         이게 힘들면 같이 스터디를 하는 방법이 있습니다(스터디 그룹에 관한 패턴 KH도 참고하시길. http://www.industriallogic.com/papers/khdraft.pdf). 이 때 같이 책을 공부하거나 하는 것은 시간 낭비가 많습니다. 차라리 공부는 미리 다 해오고 만나서 토론을 하거나 아니면 직접 실험을 해보는 것이 훨씬 좋습니다 -- 두사람 당 한대의 컴퓨터와 커대란 화이트 보드를 옆에 두고 말이죠. 제 경우 스터디 팀과 함께 저녁 시간마다 가상 XP 프로젝트를 많이 진행했고, 짤막짤막하게 프로그래밍 세션도 많이 가졌습니다.
  • ISAPI . . . . 1 match
          * IIS(Internet Information Services)란 웹 서버, FTP 서버와 같이 기본적이고 범용적인 인터넷 서비스를 시스템에서 제공할 수 있게 해주는 소프트웨어를 말한다. 기존 윈도우2000 제품군의 경우 기본적으로 IIS 5.0을 제공하였고 윈도우XP의 기존 IIS 5.0의 기능을 개선한 IIS 5.1을 제공하고 있다. 한 마디로 HTTP, FTP, SMTP 서버의 묶음이다.
  • IntegratedDevelopmentEnvironment . . . . 1 match
         IDE는 Integrated Development Environment를 말하며 한국어로는 통합 개발 환경을 의미한다. 보통 텍스트 편집기에 syntax highlite와 debugger, 빌드 도구, 컴파일러 등이 모두 통합되어 나오며 IDE하나만으로도 소스코드를 작성하는데 문제가 없다.[* 최근에는 이마저도 부족한 경우도 있다.]
  • IntelliJ . . . . 1 match
          2. CVS Root 설정 - ZP 서버에 연결할 경우 PServer 를 선택, Repository Path 로 /home/CVS 로 설정, Host에는 zeropage.org, User name 은 자기 아이디를 써준다.
  • IntentionRevealingSelector . . . . 1 match
         컬렉션을 사용하는 유저의 입장에서 각 컬렉션이 서치를 어떻게 하는지는 알 바 아니다. 알고 싶지도 않을 것이다. 바꿔보자.
  • IsBiggerSmarter?/문보창 . . . . 1 match
         단순히 Greedy 알고리즘으로 접근. 실패. Dynamic Programming 이 필요함을 테스트 케이스로써 확인했다. Dynamic Programming 을 실제로 해본 경험이 없기 때문에 감이 잡히지 않았다. Introduction To Algorithm에서 Dynamic Programing 부분을 읽어 공부한 후 문제분석을 다시 시도했다. 이 문제를 쉽게 풀기 위해 Weight를 정렬한 배열과 IQ를 정렬한 배열을 하나의 문자열로 보았다. 그렇다면 문제에서 원하는 "가장 긴 시퀀스" 는 Longest Common Subsequence가 되고, LCS는 Dynamic Algorithm으로 쉽게 풀리는 문제중 하나였다. 무게가 같거나, IQ가 같을수도 있기 때문에 LCS에서 오류가 나는 것을 피하기 위해 소트함수를 처리해 주는 과정에서 약간의 어려움을 겪었다.
  • JCreator . . . . 1 match
         Visual Studio 를 이용해본 사람들이라면 금방 익힐 수 있는 자바 IDE. 보통 자바 IDE들은 자바로 만들어지는데 비해, ["JCreator"] 는 C++ 로 만들어져서 속도가 빠르다. Visual C++ 6.0 이하 Tool 을 먼저 접한 사람이 처음 자바 프로그래밍을 하는 경우 추천.
  • JTDStudy/두번째과제/장길 . . . . 1 match
         * 너무 오랫만에 숙제를 했네요....... windfencer.zerpage.org 여기에 들어가면 위 소스로 만든 애플릿을 확인하실수 있습니다. - 장길 -
  • Java Study2003/첫번째과제/곽세환 . . . . 1 match
         자바는 컴파일 시에 에러 검사를 철저하게 하고, 실행 시에 발생할 수 있는 에러에 대해서도 실행 시에 철저하게 검사를 수행함으로써 신뢰도가 높은 프로그램을 작성할 수 있도록 해 줍니다. 또한, C/C++ 프로그램 개발자들을 가장 혼란스럽게 하고, 프로그램의 치명적인 오류를 발생시킬 수 있는 포인터 및 포인터 연산을 자바에서는 사용하지 않게 함으로써, 포인터를 사용함으로써 프로그래머가 범할 수 있는 오류를 없앴다는 것입니다.
  • Java Study2003/첫번째과제/방선희 . . . . 1 match
          * 2. 서블릿이나 JSP 는 J2EE의 구성원들로서 서버사이드 스크립트라고 합니다. JSP가 만들어진 이유가 뭐냐하면, 서블릿의 문제점을 해결하기 위해서라고나 할까... 웹 프로그래밍이란게 본질적으로 웹디자이너와의 협력이 불가피한데 서블릿의 경우에는 DISPLAY 부분을 수정하기 위해서 웹디자이너가 접근하기 어렵다는 단점이 있죠.. 이때문에 JSP가 만들어졌다고 알고 있습니다. JSP라는 파일은 웹 디자이너가 페이지를 수정하기 편하게 되어있다는게 장점이죠. JSP가 컴파일되면 서블릿이 됩니다.(이게 전부임...) 그리고 서블릿이 실행되면 실제 HTML 페이지가 클라이언트에게 전송되는 것입니다.
  • Java/ModeSelectionPerformanceTest . . . . 1 match
         Seminar:WhySwitchStatementsAreBadSmell 에 걸리지 않을까? 근데.. 그에 대한 반론으로 들어오는것이 '이건 mode 분기이므로 앞에서의 Switch-Statement 에서의 예와는 다른 상황 아니냐. 어차피 분기 이후엔 그냥 해당 부분이 실행되고 끝이다.' 라고 말할것이다. 글쌔. 모르겠다.
  • Java/ServletFilter . . . . 1 match
         이중 EncodingFilter 의 경우 JSP 프로그래머들에게도 보편적으로 이용되고 있는중.
  • Java/SwingCookBook . . . . 1 match
         1. pack 메소드 이용 - content pane 에 해당 컨트롤 붙여놨을 경우, 가장 최적 상태 사이즈로 맞춰줌.
  • JavaScript/2011년스터디/JSON-js분석 . . . . 1 match
          * perl에서는 "use strict"라고 썻을 경우 선언되지 않은 변수등은 오류로 뜸(프로그래머의 실수 방지)
  • JavaScript/2011년스터디/서지혜 . . . . 1 match
         /* TypeError: Object 0 has no method 'namespace' */
  • JavaStudy2002/세연-2주차 . . . . 1 match
          //난수를 발생시킨다
  • JavaStudy2003/두번째과제/곽세환 . . . . 1 match
          아직 상속을 읽고 있는 중이기 때문에 모르는 것이지요^^. private 과 protected 는 상속이 이루어지지 않으면 똑같이 사용이 됩니다. 하지만 상속이 이루어진다면 의미는 틀려지죠. 만약 '''자동차''' 라는 객체가 있다고 봅시다. 그런데 이것은 굉장히 추상적인 개념이지요. 이 '''자동차''' 의 하위 개념인 '''트럭''' 과 '''버스''' 와 '''승용차''' 를 '''자동차'''에서 상속받아 만들었다고 합시다. 그랬을 때 '''자동차''' 가 가지는 어떠한 상태는 '''트럭''' 과 '''버스''' 와 '''승용차'''도 역시 가지고 있을 수도 있습니다. 이런 경우 protected 로 선언해 주면 그 상태를 상속받을 수 있다는 것이지요. 하지만 외부에서 접근은 불가능하다는 사실은 변함이 없습니다. 하지만 public 은 외부에서 접근이 가능하게 되는 것이지요. 한번 직접 코드로 만들어보세요. 어떻게 다른지 채험하는게 가장 이해가 쉬울겁니다.
  • JavaStudy2004/자바따라잡기 . . . . 1 match
          *4. 그 밖의 경우에서의 가상머신은, 컴퓨터를 실행하는 운영체계나, 어떤 프로그램을 의미하기 위해 사용되기도 했었다. 이를 인용하면
  • JollyJumpers/Leonardong . . . . 1 match
         처음에 리스트에 차를 집어넣은 후 정렬하려 했다가 집합 개념이 떠올라 그 쪽으로 해결했다. statementForSeries메서드 부분에 있던 CheckJolly메서드를 따로 테스트하면서 ExtractMethod를 하게 되었고, 차가 음수인 경우도 테스트를 통해 알게되었다. 보폭이 아직 좁지만 술술 진행한 문제이다.
  • JollyJumpers/곽세환 . . . . 1 match
         맨 처음에 n을 입력 받는 작업이 있으니, 배열을 동적으로 생성하는 것이 더 좋지 않을까? --[강희경]
  • JosephYoder방한번개모임 . . . . 1 match
         변화 -> 추상화 이고 리펙토링이 잘못됬을 경우 그 결과를 뒤집기는 좀 힘들다고했다. 패턴을 알면 장점이 많단다. 초보자가 패턴을 아는척 하면 다친단다. 테스팅과 패턴을 초보자가 하면 좋다. Refactoring을 좀더 잘할려면 첫 걸음은 Rename부터.. 엄청난 프로그래머는 만드는것이 패턴으로 만들어질 수 있지만 대부분 그렇지 않다고 한다. 그러므로 리펙토링을 통해 수준을 높이는 훈련을 해놓는것이 좋다고한다. 그렇게 하면 의식하지 않아도 된단다.
  • KDP_토론 . . . . 1 match
         JStorm 계셨던 분의 말씀을 들어보니, 서적의 번역과 그에 따른 저작권 문제, 출판 문제가 상당히 머리가 아프더군. 우리가 완전 번역을 하면 저작권에 걸리는 거고, 완전 번역시에 그걸 출판을 모색할 경우 상당히 힘들것으로 보인다. 이유는 우리가 학부생이고, 전문가라고 볼수 없는 위치에 있기 때문에 출판사 측에서는 그런 점을 지적한다. 그래서 많은 책에는 유명한 사람들의 감수가 들어 있다.
  • KIV봉사활동/개인준비물 . . . . 1 match
          * 집에서 마지막으로 짐을 꾸리면서 확인할 점검표 역할을 합니다.
  • KnowledgeManagement . . . . 1 match
          * Nonaka 와 Takeuchi 는 성공적인 KM program 은 지식의 공유를 위해서 내면화된 무언의 지식을 명시적으로 체계화된 지식으로 바꿀 필요가 있다고 얘기한다. 그리고 또한 반대의 경우도 개인이나 그룹에게 있어서 KM 시스템에서 한번 추출한 지식을 내면화 하고 의미있게 체계화 하기 위해서 필요하다고 이야기 한다.
  • Komodo . . . . 1 match
         가장 인상적인 기능을 뽑는다면 Rx(Regular Expression) Toolkit 을 들 수 있다. 이를 이용하면 Regular Expression 에서 각 그룹에 따른 변수들이 어떻게 뽑아져나오는지 쉽게 눈으로 확인할 수 있다.
  • LearningGuideToDesignPatterns . . . . 1 match
         Pattern들은 각각 독립적으로 쓰이는 경우는 흔치 않다. 예를 들면, IteratorPattern은 종종 CompositePattern 과 같이 쓰이고, ObserverPattern과 MediatorPattern들은 전통적인 결합관계를 형성하며, SingletonPattern은 AbstractFactoryPattern와 같이 쓰인다. Pattern들로 디자인과 프로그래밍을 시작하려고 할때에, 패턴을 사용하는데 있어서 실제적인 기술은 어떻게 각 패턴들을 조합해야 할 것인가에 대해 아는 것임을 발견하게 될 것이다.
  • LearningToDrive . . . . 1 match
          * 하지만. 한편으론 '이상적인 만남' 일때 가능하지 않을까 하는 생각도. Communcation 이란 상호작용이라고 생각해볼때.
  • LightMoreLight/문보창 . . . . 1 match
         간단한 문제였으나, 처음에 문제 분석을 잘못하여 시간을 소비했다. 정수론 문제의 경우 문제분석만 잘해 준다면 의외로 쉽게 풀리는 것 같다. 수행시간과 메모리 사용량이 많다. 보다 좋은 알고리즘을 생각해야 한다.
  • LinkedList/학생관리프로그램 . . . . 1 match
          if(!aPopulation){//첫 등록인 경우
  • LispLanguage . . . . 1 match
         [1002]의 경우 XLISP 라는 윈도우용 프로그램 사용했었다. 언어 자체를 익히는데 최소한의 기능을 제공하는 인터프리터.
  • LogicCircuitClass/Exam2006_2 . . . . 1 match
         2. 다음과 같이 딜레이를 갖는 회로에서 초기에는 x 가 1이다. 0초일 때 x 가 0으로, 2초일 때 x 가 1로 변한다고 할 경우 x,y 의 vector waveform 을 그리시오.
  • LoveCalculator/조현태 . . . . 1 match
          커플이야 사랑을 이딴걸로 확인할일 없을꺼고.. 사용하는 사람은 할일없는 솔로뿐..
  • MFC/AddIn . . . . 1 match
          ''종종 클래스 뷰가 이유없이 날아가는 일이 발생한다. 그런 경우를 위해 써먹으면 좋을 듯''
  • MFC/Print . . . . 1 match
         || m_bDocObject || 응용프로그램이 lPrint 인터페이스를 통하여 출력하면 TRUE로 설정되며, 그렇지 않은 경우에는 FALSE이다. ||
  • MFC/RasterOperation . . . . 1 match
         상기에서 보듯 원래의 배경 색으로 다시 채워진 것을 확인할 수 있다.
  • Mario . . . . 1 match
         judge할 수 있는 사이트가 없으므로(자체 제작된 문제입니다) 알아서 잘 풀고, 확인해보시기 바랍니다.
  • Memo . . . . 1 match
          if (bind(Sock, (sockaddr *)&SockAddr, sizeof(SockAddr)) == SOCKET_ERROR)
          if (WSAIoctl(Sock, SIO_RCVALL, &I, sizeof(I), NULL, NULL, &BytesReturned, NULL, NULL) == SOCKET_ERROR)
         void error(char *buf)
          error("WSAStartup Error");
          error("server socket error");
          fprintf(stderr, "send error");
  • Metaphor . . . . 1 match
         --> 그런데 실 사례로 이해하기가 힘드네요. 메타포가 현재 시스템을 충분히 포괄하지 못하는 경우가 상당히 많을턴데...
  • ModelingSimulationClass/Exam2006_2 . . . . 1 match
         그런가-_-; 머 족보의 전세에는 지장없는 것 같다. 난 3개 미만으로 풀었는데-_-; 머 정상참작 해주지 않을까 ㅋㅋ -인수
  • MoniWiki/Release1.0 . . . . 1 match
         약속은 늦었지만, Release1.0이 6월 20일경에 내놓겠습니다. 아마도 rc8이나 rc9가 1.0이 되지 않을까 싶습니다.
  • MoniWikiThemes . . . . 1 match
         IE의 경우 display:block 또는 display:table 을 통해 2개 이상의 블록모델 레이어를 중첩시킬 때 width 속성을 각각 주지 않으면 마우스 스크롤이나 리플레시 동작에 컨텐츠가 지워지는 특징(버그?)이 있습니다. width 속성을 주면 괜찮아 지더군요. 최근 저도 CSS만으로 테마를 구현하고 있습니다. --[http://scrapnote.com 고미다]
  • MultiplyingByRotation . . . . 1 match
         보통 자연수의 곱셈은 복잡한 연산이다. 어떤경우에서는 연산결과가 마지막 숫자를 앞으로 옮기는 것에 의해서 얻을 수 있다.
  • MultiplyingByRotation/문보창 . . . . 1 match
         1학년 때 풀어서 틀렸었던 문제를 다시 풀어보았다. 일단 이동곱셈의 규칙성을 연습장에 끄적이는 도중 쉽게 발견할 수 있었고, 간단히 사칙연산으로 구현할 수 있었다. 마지막 자리숫자가 0일 경우의 예외처리를 해 준 후 바로 통과.
  • NS2 . . . . 1 match
         Networking과 관련된 여러 이론과 아이디어를 가상으로 실험해 볼 수 있는 시뮬레이터. 네트워킹과 관련된 논문에서 가설에 대한 검증을 할때 실제 실험을 해 보는 경우가 아니면 99% 이상이 시뮬레이터를 이용한다.
  • NeoCoin/Server . . . . 1 match
         make-kpkg kernel_image 2> build-errors
          3.0 이 등장할까요? 그냥 2.8 나오지 않을까요? --[neocoin]
  • NeoZeropageWeb . . . . 1 match
         뭐가 좋을까? ㅡㅡ? 쉽기는 3번이 가장 쉽고... 재미있기에는 2번이 가장 재미있고 독특한 형태가 되지 않을까 생각하는데...
  • NextEvent . . . . 1 match
         Fishbowl이라는 기술은 많은 사람이 토론을 할 경우 사용하는 테크닉입니다. 두개의 동심원으로 좌석을 배치하고 안쪽(어항)에 토론을 하는 사람들이 착석하고, 바깥쪽에 청중이 착석합니다. 안의 사람은 밖의 사람과 대화하지 못하고, 밖의 사람은 안의 사람에게 말을 걸지 못합니다. 안에 있는 사람들이 토론을 하는 것을 밖의 사람들이 어항을 구경하듯 관찰합니다. 여기에 변화를 주게 되면, 안의 사람을 동적으로 교환할 수 있습니다. 밖의 사람 중에 토론에 참여하고 싶은 사람이 있다면 언제든 안으로 들어와서 앉습니다. 그러면 최소한 한 사람이 밖으로 나갈 때까지 토론은 중단됩니다.
  • NiceMilk . . . . 1 match
         컵에 들어있는 우유의 양이 제한되어 있기 때문에 빵의 밑변과 우유가 이루는 수면 사이 영역만 우유로 적실 수 있다. 우유의 깊이는 h며, 빵에 우유를 계속 찍어도 우유의 높이는 줄지 않는다. 토미는 이런 식으로 최대한 넓은 영역을 우유로 적시려고 한다. 하지만 빵을 우유에 담그는 횟수는 최대 k번으로 제한되어 있다. 컵은 빵을 집어넣을 때 전혀 걸리지 않을 만큼 충분히 크다고 가정하자.
  • NotToolsButConcepts . . . . 1 match
         지금 이 순간에 후배들이 같은 질문을 한다면 NotToolsButConcepts 라는 대답을 해주고 싶다(단, 언어도 하나의 툴이라고 가정할 경우). 1, 2년 후배를 받을 때까지는 잘 몰랐지만, [데블스캠프]나 새내기가 참가하는 세미나를 찾아갈 때마다 매번 들리는 소리였다.
  • OOD세미나 . . . . 1 match
          * 오늘 긴 시간동안 모두 수고하셨습니다. 오늘 설명한 내용이 아직 깊이 와닿지 않더라도 좋습니다. 프로젝트 개발에 있어 그동안 흔히 전개했던 방식과는 다른 접근 방식의 가능성을 확인하는 것만으로도 좋은 경험이 되었길 바랍니다. 누누히 강조하지만 한 번에 이해하시길 바라서 진행하는 세미나가 아니라, 정말 중요한 하나의 제언만이라도 남는다면 그것을 앞으로 몇 번 듣고 또 듣고, 그리고 정말 그 개념이 필요한 순간이 됐을 때 큰 힘이 되리라 믿습니다. 예제는 좋은 예제거리에 대한 의견이 없어 SE 프로젝트 주제를 차용했는데, 설계만으로 문제가 깔끔하게 해결되는 과제가 아니라 알고리즘으로 해결해야할 부분이 꽤 있는 과제다보니, 실습이 설계부분에 집중하기 힘들었던 점은 다소 아쉽네요. 좋은 후기를 작성해주신 분 한 분을 선정해서 번역서 [http://book.naver.com/bookdb/book_detail.nhn?bid=2500990 Holub on Patterns]을 선물로 드립니다. 후기는 감상보다는 되새김이 되었으면 좋겠습니다. :) - [변형진]
  • ObjectOrientedReengineeringPatterns . . . . 1 match
         [1002] 의 경우 Refactoring for understanding 이라는 녀석을 좋아한다. 그래서 가끔 해당 코드를 읽는중 생소한 코드들에 대해 일단 에디터에 복사한뒤, 이를 조금씩 리팩토링을 해본다. 중간중간 주석을 달거나, 이를 다시 refactoring 한다. 가끔 정확한 before-after 의 동작 유지를 무시하고 그냥 실행을 해보기도 한다. - Test 까진 안달아도, 적절하게 약간의 모듈을 추출해서 쓸 수 있었고, 코드를 이해하는데도 도움을 주었다. 이전의 모인모인 코드를 읽던중에 실천해봄.
  • ObjectWorld . . . . 1 match
         두번째 Session 에서는 세분이 나오셨습니다. 아키텍쳐란 무엇인가에 대해 주로 case-study 의 접근으로 설명하셨는데, 그리 명확하지 않군요. (Platform? Middleware? API? Framework? Application Server? 어떤 걸 이야기하시려는것인지 한번쯤 명확하게 결론을 내려주셨었더라면 더 좋았을 것 같은데 하는 아쉬움.) 아키텍쳐를 적용하는 개발자/인지하는 개발자/인지하지 못한 개발자로 분류하셔서 설명하셨는데, 저의 경우는 다음으로 바꾸어서 생각하니까 좀 더 이해하기가 쉬웠더라는. '자신이 작업하는 플랫폼의 특성을 적극적으로 사용하는 개발자/플랫폼을 이해하는 개발자/이해하지 못한 개발자' 아직까지도 Architecture 와 그밖에 다른 것들과 혼동이 가긴 하네요. 일단 잠정적으로 생각해두는 분류는 이렇게 생각하고 있지만. 이렇게만 정의하기엔 너무 단순하죠. 해당 자료집에서의 Architecture 에 대한 정의를 좀 더 자세히 들여다봐야 할듯.
  • OeKaki . . . . 1 match
         재편집 하는 경우, 기존의 그림은 `test_1.png` `test_2.png`과 같은 식으로 이름이 바뀌어 저장됩니다.
  • Ones/1002 . . . . 1 match
         어떻게 접근할까 하다가 지금까지 연습장을 안 쓰고 있음을 확인. 연습장을 꺼내는 순간 '팍' 하고 느낌이 오다.~ 그리고 바로 최종 코드 완료.
  • OperatingSystemClass . . . . 1 match
         애석하게 중대에서 그 사람수에 비해 강의가 하나밖에 없다. 그리고 요새 보통은 0,1,2 교시 수업이다; 예전 김영찬 교수님때는 모르겠지만, 황준 교수님의 경우 원래 서울여대에 있는 분이셔서, 수업 스케줄이나 준비면에서 좀 부실하시단 느낌이 든다. (특히; Report 로 내는 문제들에 대해서 Spec 에 대한 문서가 없다; 수업시간중 구두 설명정도이다.)
  • OurMajorLangIsCAndCPlusPlus/XML/조현태 . . . . 1 match
          /* 단순한 연결의 경우 */
  • OurMajorLangIsCAndCPlusPlus/locale.h . . . . 1 match
         || char* setlocale(int category, const char* locale); || category에 대해 로케일 locale을 설정하고 (물론, 사용 가능한 로케일인 경우), 설정된 로케일값을 리턴. ||
  • OurMajorLangIsCAndCPlusPlus/print . . . . 1 match
         배열의 경우 배열 포인터와 배열의 길이를 전달인자로 넘긴다.
  • PC실관리 . . . . 1 match
         만약 컴터가 뻣어서 재부팅 되면 자료가 다사라지니 보안관은 비추입니다^^; 프린터 네트워크도 잡아야되지 않을까요? - [수생]
  • PC실관리/2013 . . . . 1 match
          * VMware나 버박 설치하고 거기에 페도라라도 깔아둔다면 좋지않을까.
  • PC실관리/고스트/네트워크를이용한OS설치 . . . . 1 match
         보기에는 굉장히 간단하지만, 오늘 저 네트워크로 하는것은 왠지 복잡하지 않을까 하는 선입관을 가지고 시도도 안해보고 하드 띄어서 복사하고, 시디 구워서 복사 하려다가 초절정 노가다를 곁드린 삽질을 하게 되었다. 조그마한것을 귀찮아 하다가 더 귀찮아졌던 하루. 아 피곤.... - [(namsang)]
  • PNGFileFormat/FormatUnitTestInPythonLanguage . . . . 1 match
          if i > 0 : # 인덱스가 0이 아닐 경우는 옆칸에서 더한다.
  • PageListMacro . . . . 1 match
          옵션을 metawiki 혹은 m으로 넣었습니다. 그런데, 서치 속도가 느립니다. metadb가 5메가 이상인데 약 2초 가까이 걸리네요. 페이지이 이 매크로를 넣으면 페이지 로딩속도가 느려지므로 그다지 바람직한 방법은 아닌 것 같습니다. 그리고, metadb를 다 서치하려면 메모리를 많이 잡아먹게 되어 멎는 경우도 생기므로, 100여개정도를 찾으면 끝내도록 되어있습니다.
  • PhotoShop2003 . . . . 1 match
         || 14:30 || 16:31 || 버그 수정과 값이 제대로 들어가는가 확인하기 위해 그래프 그림 후.. 집중 안하고 애들이랑 떠들면서 해서 그런지 너무 조금밖에 못했다. || 인수 || 121분 ||
  • PragmaticVersionControlWithCVS/HowTo . . . . 1 match
         이 경우 체크인처럼 여러번 그리고 자주하는 일에 적용되는 규칙은 간단해햐한다.
  • ProgrammingLanguageClass/Report2002_2 . . . . 1 match
          * "add" 연산자(operator)가 쓰일수 없는 상황에 대하여 확인하기
  • ProgrammingPearls/Column3 . . . . 1 match
          * 별로 볼건 없고... 아무도 하지 않을 상황을 예로 들어놓은 것 같다. 왠만큼 프로그램 배운 사람이라면 당연히 배열로 처리할 것을 몇 백개의 변수로 처리하는 상황을 보여주고 있다. 그러면서 하는 말 : 많은 변수를 쓰고 있으면 관련되는 것으로 묶어서 배열로 처리하라. 이게 주제다.
          cout << "scheme error." << endl;
  • ProgrammingWithInterface . . . . 1 match
         상속을 사용하는 상황을 국한 시켜야 할 것같다. 상위 클래스의 기능을 100%로 사용하면서 추가적인 기능을 필요로 하는 객체가 필요할 때! .. 이런 상황일 때는 상속을 사용해도 후풍이 두렵지 않을 것 같다. GoF의 책이나 다른 DP의 책들은 항상 말한다. 상속 보다는 인터페이스를 통해 다형성을 사용하라고... 그 이유를 이제야 알 것같다. 동감하지 않는가? Base 클래스를 수정할 때마다 하위 클래스를 수정해야 하는 상황이 발생한다면 그건 인터페이스를 통해 다형성을 지원하는게 더 낫다는 신호이다. 객체는 언제나 [[SOLID|SRP (Single Responsiblity Principle)]]을 지켜야 한다고 생각한다.
  • ProjectAR/ThinkAbout . . . . 1 match
         층을 자유자제로 움직이기 때문에 이벤트가 진행되는 경우의 수는 굉장히 많을 것이다. 이것들이 버그
  • ProjectAR/기획 . . . . 1 match
          있을껀 있어야 하겠지만 직접 입력이 되야 하는 데이터를 줄이자는 이야기이죠^^; 어떤 공식을 따라 계산이 되고 기본적인 데이터만 가진다면 프로그램 하는데 있어서 더욱 편하지 않을까 하네요 -[상욱]
  • ProjectCCNA/Chapter2 . . . . 1 match
          * ethernet: CSMA/CD- 이더넷 통신에서 사용하는 프로토콜이다. 회선이 사용중이지 않을때 전송하고 충돌이 생기면 일정시간후 재전송한다.
  • ProjectPrometheus/AcceptanceTestServer . . . . 1 match
         해당 AcceptanceTest 의 Run 를 클릭하면, WEB 에서 해당 AcceptanceTest (UnitTest 작성 코드) 를 실행하고, 그 결과를 그대로 화면에 출력한다. 그러면 해당 테스트에 대한 결과를 확인할 수 있다.
  • ProjectPrometheus/Estimation . . . . 1 match
          * 신청 도서 확인
  • ProjectPrometheus/Iteration5 . . . . 1 match
         || Login 후 검색해서 RS 여부 확인 AT || . || . ||
  • ProjectPrometheus/Iteration6 . . . . 1 match
         || Login 후 검색해서 RS 여부 확인 AT || . || . ||
  • ProjectPrometheus/Iteration8 . . . . 1 match
         || 검색결과 없을 경우 ||
  • ProjectPrometheus/LibraryCgiAnalysis . . . . 1 match
          소장정보확인
  • ProjectPrometheus/MappingObjectToRDB . . . . 1 match
          * 패턴의 오/남용 문제가 발생할 수 있다. - 어설프게 아는것은 모르느니만 못한 경우가 있다. 그리고 제대로 안다고 해서 "많이" 하는 것은 정말 잘 아는게 아닐 수 있다.
  • ProjectSemiPhotoshop . . . . 1 match
          * ''Xp Process 에서 거론되는 '''''트럭에 치일경우 프로젝트에 결정적 영향을 끼치는 평균 수치이다.''''' ''
  • ProjectSemiPhotoshop/Journey . . . . 1 match
          * 프로그래밍 자체가 약간 게임과 같은 느낌이 좋왔고, 현민이가 어땠는지 궁금하다. 해깔리기만 하지 않을까? --["neocoin"]
  • ProjectVirush/Idea . . . . 1 match
          ( 숙주가 너무 많아질 경우 서버가 감당하기 힘들 수 있기 때문이다. )
  • ProjectVirush/Prototype . . . . 1 match
         void error(char *buf)
          error("WSAStartup Error");
          error("server socket error");
          fprintf(stderr, "send error");
  • ProjectZephyrus/PacketForm . . . . 1 match
         바뀐 내용은 [http://zeropage.org/browsecvs/index.php?&cvsrep=ZeroPage&dir=ProjectZephyrusServer%2Fdocument%2F&file=PacketForm.txt CVS-PacketForm] 에서 확인가능
  • ProjectZephyrus/ServerJourney . . . . 1 match
          * 잘하긴요.... 해본거라 그렇죠..머..^^ 몇번의 삽질끝에... {{{~cpp writeLoginCmd}}} 완성.. 하지만.. 버디 리스트를 갖고 있는 테이블인 {{{~cpp PZContactList}}}은 중복 허용 문제때문에.. 프리머리 키도 없고... 나중에 속도문제가 생기지 않을까 하는 걱정이 됩니다.. 좀더 생각해봐야겠습니다...^^ 그리고 재동군이 이제 합류하나여? --상규
  • PyIde . . . . 1 match
          * 툴의 아주 작은 기능들이라도 구현해보면서 뭔가 배우는 것이 있지 않을까.
  • PyIde/BicycleRepairMan분석 . . . . 1 match
         BicycleRepairMan_Idle.py 가 실마리가 될것 같다. VIM이나 Idle 통합부분의 경우 BRM에서의 facade를 사용한다.
  • Python/DataBase . . . . 1 match
         client_flag - integer, 필요할 경우 사용하기 위한 flag (0)
  • PythonFeedParser . . . . 1 match
         원래 다른 feedParser 사용하다가 한글이 잘 안되는 경우가 있어서 검색 하다가 위 링크의 파서 발견. 훨씬 좋음. 한글 파싱 잘된다. 진작 위 파서로 만들걸.. - [(namsang)]
  • PythonNetworkProgramming . . . . 1 match
          print "Socket Error occured.."
  • PythonXmlRpc . . . . 1 match
          raise AttributeError, "No XML-RPC procedure %s" % method
  • R'sSource . . . . 1 match
          console=["rep.py"], # 도스창에서 실행할 파일을 생성할 경우
  • RUR-PLE/Etc . . . . 1 match
          * 이 경우에서의 처리를 while 문을 사용하여 처리한다.
  • RabbitHunt/김태진 . . . . 1 match
         == Trial and Error ==
  • RandomFunction . . . . 1 match
          b가 -일 경우에는 사용에 주의가 필요합니다
  • RandomWalk . . . . 1 match
          바퀴벌레는 임의의 한 점에서 시작하여서 임의의 방향으로 움직이게 된다. 이미 지나갔던 자리에 다시 갈 수 있으며 프로그램은 바퀴벌레가 각 위치에 몇번 갔는지 기억하여야 한다. 프로그램은 바퀴벌레가 모든 지점에 적어도 한번 이상 도달하였을 경우 끝난다. 바퀴벌레는 가로, 세로, 대각선으로 한칸 씩만 움직일수 있으며, 바퀴벌레가 움직이는 방향을 랜덤하게 만드는 것은 각자가 생각해 보도록 한다.
  • RandomWalk/대근 . . . . 1 match
         1. 방화벽 없이 방향대로 움직이기 전에 그것이 칸 안인지 확인하고 점 찍기..
  • RandomWalk/변준원 . . . . 1 match
          if(matrix[x][y]==0) //자리 확인
  • RandomWalk/임인택 . . . . 1 match
          TokenRing 에서 아이디어를 얻어 나름대로 만들어봤는데 (아직 제대로 동작하는지 미확인. 이 글을 작성하는 도중에도 버그가 하나둘 보이고 BadSmell 이 많이 난다. PC가 많은 곳에서 추가작업필요... :( ) 이게 CSP 의 이념에 부합하는지 모르겠다. m by n 배열에 있는 셀들을 TokenRingNetwork 형태를 띠게 하면서 사실은 배열인것처럼 동작하게 했다. 이 방법 말고 마땅한 방법이 떠오르지 않았다. TestDrivenDevelopment 으로 작성해보려고 했지만 실천에 옮기지 못했다. 몸에 밴 습관이란건 극복하기가 쉽지 않은 것 같다.
  • RandomWalk/창재 . . . . 1 match
         int def_empty() // 꽉 찼나 안찼나 확인하는 함수.
  • RandomWalk2/TestCase2 . . . . 1 match
         3. 가로 세로 같으며, 벽에서 다른 벽으로 나오는가 확인
  • RandomWalk2/Vector로2차원동적배열만들기 . . . . 1 match
         ''DeleteMe 페이지 이름으로 MultidimensionalArray가 더 좋지 않을까요?''
  • Refactoring/MakingMethodCallsSimpler . . . . 1 match
         == Replace Error Code with Exception ==
         A method returns a special code to indicate an error.
  • RegressionTesting . . . . 1 match
         그래서 대다수의 소프트웨어 개발 시점 중에는 버그를 고쳤을때 훌륭한 방법인가, 버그가 재작성되거나, 버그가 프로그램상의 하부 변화 이후에 규칙적으로 실행되는지 '''드러내는 테스트'''에 대하여 훌륭한 실행 방법들을 제시한다. 몇몇 프로젝트(내 생각에 Mozilla경우, Eclipse도 같은 시스템)는 자동화된 시스템으로 자동적으로 모든 RegressionTesting들을 규칙적으로(보통 하루나 주말단위로) 실행하고, 조사하도록 세팅되어 있다.
  • RelationalDatabaseManagementSystem . . . . 1 match
         에디가 코드의 논문은 [http://www.acm.org/classics/nov95/toc.html ACM 논문] 에서 확인할 수 잇음 - [eternalbleu]
  • ResponsibilityDrivenDesign . . . . 1 match
         Object 란 단순히 logic 과 data 묶음 이상이다. Object 는 service-provider 이며, information holder 이며, structurer 이며, coordinator 이며, controller 이며, 바깥 세상을 위한 interfacer 이다. 각각의 Object 들은 자신이 맡은 부분에 대해 알며, 역할을 해 내야 한다. 이러한 ResponsibilityDrivenDesign 은 디자인에 대한 유연한 접근을 가능하게 한다. 다른 디자인 방법의 경우 로직과 데이터를 각각 따로 촛점을 맞추게끔 하였다. 이러한 접근은 자칫 나무만 보고 숲을 보지 못하는 실수를 저지르게 한다. RDD는 디자인과 구현, 그리고 책임들에 대한 재디자인에 대한 실천적 조언을 제공한다.
  • ReverseAndAdd . . . . 1 match
          * 안하지 않을까요? --[김회영]
  • RoboCode . . . . 1 match
         [TheJavaMan/로보코드]와 [JavaStudy2004/로보코드]를 여기로 합치면 좋지 않을까요?--[Leonardong]
  • RonJeffries . . . . 1 match
         왜이리 찔리는지. -_-; 특히 마지막문장.. 프로그래밍을 하다보면 가끔 누구를 위한 프로그램인가를 간과하게 되는 경우가 많게 되는지라서.. ^^;
  • Ruby/2011년스터디/서지혜 . . . . 1 match
          * 웹 브라우저가 종료되지 않을
          _tprintf(_T("Process32First error!\n"));
  • RubyLanguage/InputOutput . . . . 1 match
          * 단 예외 발생시 File.close는 호출되지 않는다. ensure 구문에서 처리할 수 있다.
  • RummikubProject . . . . 1 match
         || 배열 확인 알고리즘 || (V) ||
  • ScheduledWalk/재니&영동 . . . . 1 match
          for (int j = 0 ; j < maxRow * maxCol ; j++) // 빈 셀이 있는지 확인
  • SearchAndReplaceTool . . . . 1 match
         Actual Search & Replace 를 쓰는중. 기존 사이트 이어받은거 웹 노가다일을 해야 할 경우 매우 편리. (예전에는 그때그때 python script 를 만들어썼는데, 그럴 필요가 없을듯) --[1002]
  • SeminarHowToProgramItAfterwords . . . . 1 match
          * 흥미로운 것은 시끄러운 프로그래밍이였다는 것이였습니다. 혼자서 하는 프로그래밍(PairProgramming을 알고나니 새로운 개념이 생기는군요. 원래 Programming이라는 것은 혼자하는 거였는데, 이제 프로그래밍하면 pair인지 single인지 구분을 해주어야겠군요)을 하는 경우에는 팀원들이 소란스럽게 떠들면 ''아 지금 설계하고 있구나''하고 생각하고, 조용해지면 ''아 지금 코딩하고 있구나..''하는 생각이 들었는데, PP는 끝까지 시끄럽게 하는거라는 느낌이 들더군요. 그렇게 대화가 많아지는 것은 코딩에 대한 이해도의 증가와 서로간의 협력 등 많은 상승효과를 가져올 수 있다는 생각을 했습니다.
  • ServerBackup . . . . 1 match
          * 문제 ~ DNS Server 가 죽었음 (or 잘못 설정되어 있음 165.194.35.222 서버 확인 필요) 그래서 주소 기반으로 외부로 ping을 날릴수 없다.
  • SharedSourceProgram . . . . 1 match
         MVP만의 뉴스그룹에서 창업한 경우
  • SignatureSurvey . . . . 1 match
         처음써봐서 완벽하게 확신이 들진 않지만, SignatureSurvey 를 사용하면 Duplication Code 를 찾는 방법으로 일반화를 시킬 수 있지 않을까 하는 상상을 해본다.
  • SimpleDelegation . . . . 1 match
         위임하는 객체(delegating object)는 위임 객체 또는 위임자 객체, 위임된 객체(delegate)는 대리자로 번역할 수 있을 것 같고(차라리 영어를 그대로 쓰는게 좋을지도 모르겠네요), 주체성은 참조를 의미하지 않을까요?
  • Slurpys/박응용 . . . . 1 match
          raise NotImplementedError
  • SmithNumbers/이도현 . . . . 1 match
         uva사이트에 등록할때 e-mail을 적었다면, e-mail로 컴파일 에러가 곳(?)을 로봇이 바로 보내줍니다. 참고하세요. 단, 한메일은 스팸편지함을 확인해 보세요. -보창
  • SolidStateDisk . . . . 1 match
         백업 메카니즘으로서 배터리나 일반적인 자기디스크를 내장하곤 한다. SDD 는 일반적인 HDD I/O interface 로 연결된다. 이로 인해서 얻을 수 있는 잇점은 적은시간에 빈번한 I/O 작업이 일어날 경우에, seek time 이나 rotational latency 가 없는 메모리로서, 자기디스크에 비해 월등한 성능을 나타낼 수 있다. 그에 덧붙여 구동부가 없는 구조로서 좀더 내구성이 뛰어나다고도 할 수 있겠다. 단점은, 특성상 대용량화가 어려우며 커다란 데이터의 요구량이 커질때. 즉 access time 보다 transfer time 이 더 요구될때 효율성이 안좋다.
  • SpikeSolution . . . . 1 match
         이러한 실험들을 XP에서는 Spike Solution이라고 한다. 다른 점이라면, 우리는 보통 실험 코드를 만든 뒤 실전 코드에 바로 붙일 것이다. 하지만 Spike Solution 의 경우는 '실험은 실험에서 끝난다' 에서 다를 수 있다. 보통 Spike Solution 에서 실험한 코드들을 메인소스에 바로 적용시키지 않는다. Spike Solution은 처음 계획시 estimate의 선을 잡기 위한 것으로 메인소스에 그대로 적용될 코드는 아닌 것이다. 지우고 다시 만들어 내도록 한다. 그러함으로써 한편으로는 학습효과를 가져오고, 실전 소스의 질을 향상시킬 수 있다.
  • SpiralArray/Leonardong . . . . 1 match
         그런데 벽에 들어서야 종료하다 보니까 mover를 벽에 들어가기 전에 위치로 되돌려놓아야 했다. 그래서 direction에 모두 previous 메서드가 생겼다. 한데 다음 번 goStraight를 할 때는 이미 이동했던 기록이 남아있게 되었다. 그래서 매번 goStraight를 할 때마다 마지막 이동 기록을 삭제했다. 그러다보니 board크기가 1일 경우는 이동한 기록이 모두 지워져버리는 것이 아닌가. 조잡하지만 예외 처리를 해주었다.
  • SqLite . . . . 1 match
         [http://www.int64.org/sqlite.html - SQLite C++ Wrapper]. 단, 이 코드의 경우 long long 형을 쓰는 관계로 VC6 에서는 컴파일이 되지 않는다. long long 형을 쓰는 부분을 __int64 로 바꾸면 VC6 에서도 이용은 가능.
  • StacksOfFlapjacks/이동현 . . . . 1 match
          bool isEnd(){ //모든숫자가 정렬되었는지 확인.
  • StandardWidgetToolkit . . . . 1 match
          * 실행을 시키기 위해서, 실행되는 위치에 swt-win32-2133.dll (Windows 경우)가 있어야 한다.
  • Star . . . . 1 match
         입력된 각 줄에 대해 주어진 판에 들어있는 숫자 총합의 최소 값과 최대 값을 출력한다. 이 두 값은 같은 줄에 출력해야 하며, 두 숫자 사이에는 딱 한 개의 스페이스를 출력한다. 풀이가 없는 경우에는 "NO SOLUTION"이라고 출력해야 한다.
  • StringCompression . . . . 1 match
         모든 경우를 다 해 보는 알고리즘은 O(n^3) 이 되네요. String Matching에서 좀 더 효율적인 알고리즘을 사용해보면 좀더 줄일수 있을텐데... -- 보창
  • SummationOfFourPrimes . . . . 1 match
         [http://www.n2n.pe.kr/util/find_prime.php 소수판정기]로 답을 확인해볼 수 있겠네요. --[Leonardong]
  • SwitchAndCaseAsBadSmell . . . . 1 match
         ["가위바위보"] 구현 코드들을 보면 케이스 문을 많이 쓰거나 혹은 비슷한 구조의 if 문이 중복된 경우가 많습니다.
  • TCP/IP_IllustratedVol1 . . . . 1 match
          * 중간 고시도 끝났으니 다시 논의 해 봐야 하지 않을까나..김군~ -- fnwinter
  • Temp/Parser . . . . 1 match
          except ValueError:
          self.outstream.write(self.lexer.error_leader()+msg+'\n')
  • TestDrivenDevelopment . . . . 1 match
          사람마다 다를것 같긴 하지만, 나의 경우는 테스트를 작성하기 전 TODO List 를 작성할때 가장 고민을 하고 시간이 오래걸린 것 같다. 뭘 만들것인지에 대한 이해가 제대로 되지 않은 상태에서는 도대체 '뭘 해야 할지, 어떤 결과를 기대해야 할지'를 모르기 때문. :) 한편, 만일 TODO 리스트 작성시 시간이 너무 지체된다 싶으면 빨리 '어떤 결과를 기대해야 하나(Test 디자인)' 이란 질문을 하고 테스트를 작성해보는 방법을 추천. 저 질문이 앞에서의 '뭘 할까?'라는 질문의 모호함을 보완해주기 때문. 무엇을 해야 할지 감이 안올때는 가장 간단한 Input-Output 을 서술해봄으로서 조금씩 구체화시켜나갈 수 있음. '예제에 의한 구체화'란 방법은 참 유용함. --[1002]
  • TestDrivenDevelopmentByExample . . . . 1 match
         ["Java"] 소스(국내에 인기있는;)로 되어있으니 추후 출판뒤 번역이 되지 않을까 하는 희망을; 하지만 지금 진행중인 책의 앞부분을 읽어보긴 했는데. 정말 'Test 로 Driven' 되는 것 같은 느낌이 듬. TDD 진행과정을 예제 하나를 통해 계속 보여주기 때문에 이해하기 편합니다.
  • TheJavaMan . . . . 1 match
          - [TheJavaMan/로보코드]로 하면 되지 않을까?ㅋㅋ 로보코드 폐인을 위해 -[Leonardong]
  • ThePriestMathematician . . . . 1 match
         2. 침이 세 개 있는 경우에 쓰는 방법을 그대로 적용해서 나머지 n-k개의 원반(전체 원반의 개수를 n개라고 가정)을 목표 지점으로 옮긴다.
  • TheTrip/Leonardong . . . . 1 match
         문제를 풀기 전에 샘플 입력부터 보는 경향이 있다. 문제를 이해 못했으므로 샘플 입력을 보다가 결국 다시 문제를 보느라 시간이 지체된다. 따라서 문제를 다 이해하고, 정의한 뒤 샘플 입력을 보아 정의가 맞는지 확인하는 순서로 문제를 풀어야겠다. 해결책은 문제를 정의한 다음에 떠올린다.
  • TheTrip/곽세환 . . . . 1 match
          * double형의 정밀도때문에 계속 삽질했음(예를 들어 9.03의 경우 9.029999999999...으로 입력됨). 지식검색 결과 컴퓨터구조상 어쩔 수 없다고 함. 문자열로 입력받는 방법말고 좋은 해결 방법있으면 가르쳐주세요.
  • ThinkWeek . . . . 1 match
          심심하지 않을까.. 흔자 일주일동안 있으면.
  • ToeicStudy . . . . 1 match
         토, 일 바쁘지 않을때 모여서 여러 공부에 관해서 Study
  • TriDiagonal/1002 . . . . 1 match
         LU 분해 뒤 해당 계산이 제대로 되었는지를 확인하기 위해 Numeric Python 모듈을 이용했다. [http://sourceforge.net/project/showfiles.php?group_id=1369 여기] 에서 받을 수 있다.
  • TugOfWar/문보창 . . . . 1 match
         백트래킹문제. 따져줘야 하는 가지수가 적은 경우 최적화된 알고리즘을 찾는 것 보다는 그 가지수를 모두 따지는 것이 유리할 수도 있다.
  • TuringMachine . . . . 1 match
         http://www.acm.org/awards/taward.html 에서 수상자를 확인 가능. 보면 알겠지만 우리가 알만한 사람은 한번씩들 다 받았다. ㅡ.ㅡ;;
  • TwistingTheTriad . . . . 1 match
          - 내가 파악한 MVC 모델은 너무 얕은 지식이였나. 여태껏 그냥 Layer 단으로만 그렇게 나누어진다만 생각했지 해당 이벤트 발생시나 모델의 값 변화시 어떠한 단계로 Control 이 흘러가는지에 대해서는 구체적으로 생각해본 적이 없었던 것 같다. 화살표를 보면 Application Model -> Controller 로의 화살표가 없다. 그리고 Problem Space 의 범위도 차이가 난다.
  • UML/CaseTool . . . . 1 match
         UML 케이스 툴과 달리 Visio 같은 경우에는 Diagramming 기능만을 제공한다. Diagramming Tool 이라고 분류하는 듯하다.
  • UglyNumbers/1002 . . . . 1 match
         하지만, 결과값을 보면서 지수 스타일의 접근법이 원하는 접근법이라는 생각을 하게 되다. (10억이 넘는다 할때, isUglyNumber 식이라면 10억번이 실행된다.) 하지만, 그냥 지수로만 생각하면 uglynumber 의 순서 상 맞지 않을 것인지라 (1 : 2^0*3^0*5^0, 2 : 2^1*3^0*5^0, 3 : 2^0*3^1*5^0, 4 : 2^2*3^0*5^0 ... 0,0,0 , 1,0,0, 0,1,0 , 2,0,0 .. 도무지 숫자들 간의 연관성이 잡히지 않았다.
  • UploadFile . . . . 1 match
         기본값은 {{{$pds_allowed}}}를 정하지 않았을 경우 {{{'png|jpg|jpeg|gif|mp3|zip|tgz|gz|txt|css|exe|hwp'}}}로 내정됩니다.
  • UseSTL . . . . 1 match
          * 이전에.. 1부터 10000까지 숫자를 임의로 생성시켜야 하는데 임의적인 숫자가 반복되어서도 안되고, 숫자가 빠져서도 안되게 코딩을 해야 하는 경우가 있었잖아. 그때는 Boolean 10000개로 이미 쓴 숫자인지 테스트 했었던 것 같은데 아래가 정석인 것 같다.
  • VMWare . . . . 1 match
         유사제품으로 [Parallels] ( [eXtremeProgramming] 으로 개발되었다고 함. Mac 버전의 경우 윈도우 환경을 거 70%~90% 퍼포먼스로 구현했다고 들었음) 가 있다.
  • VMWare/UsefulFunctions . . . . 1 match
         VMWare 는 크로스 컴파일링 환경에서 유용한 기능을 몇가지 가지고 있다. 물론 해당 가상 머신에 VMWare Tools 라는 VMWARE 가 제공하는 프로그램을 올렸을 경우에만 작동한다.
  • VendingMachine/세연 . . . . 1 match
         코드의 경우 가장 간단한 평가 기준으로 두가지를 둔다면,
  • VisualAssist . . . . 1 match
         [1002] 의 경우 요새는 VC++.NET 이상 되는 녀석을 쓰는 일로 대체중. VA 자체 버그도 많아서 (특히 TDD 할때 아직 선언 안된 변수 먼저 쓰려면 자꾸 이상한 변수로 자동완성시켜버린다.;) 잘 안쓰려는 중. --[1002]
  • VonNeumannAirport/인수 . . . . 1 match
         //제거해 버리는 것이 좋지 않을까 합니다. --JuNe
  • WERTYU . . . . 1 match
         타이핑을 하다 보면 키보드에서 양손을 모두 원래 위치보다 오른쪽으로 한 칸 이동한 상태에서 키를 눌러서 오타가 나오는 경우가 종종 있다. 그러면 'Q'는 'W', 'J'는 'K' 같은 식으로 오른쪽에 있는 키가 입력된다. 이런 식으로 입력된 메시지가 주어졌을 때 원래 메시지로 복구시켜야 하는 임무가 주어졌다.
  • WOWAddOn/2011년프로젝트/초성퀴즈 . . . . 1 match
         시뮬을 돌려본 결과 Coroutine은 다른 Thread 단위로 돌아가는것이 아니라 main에서 같이 돌아가는것으로 나왔다. 이거 진짜 어떤경우에 쓰는건지.. 여튼.
  • WebLogicSetup . . . . 1 match
          1. web.xml을 수정할 경우
  • WeightsAndMeasures . . . . 1 match
         테스트가 너무 적은 듯. 풀기는 풀었는데 체점하려니 python은 지원하지 않아 확인 못함...=,= 나중에 C++로 변경해서 해봐야겠음. --재동
  • WeightsAndMeasures/신재동 . . . . 1 match
         sort()에 비교 함수('''turtlesCompare''') 넣는데 은근히 힘들었음. 처음에는 C++의 STL에서 vector에 비교 함수 넣는 것과 같으리라고 생각하고 비교 함수를 만들었는데 안되서 확인해보니 파이썬의 리스트에서는 결과를 '''{-1, 0, 1}'''로 해야지 제대로 돌아간다는 것을 알았음. --재동
  • WikiGardening . . . . 1 match
         ''실제 위키의 View 구조를 조성하는 사람들이 드물기 때문에, 기존 게시판에서의 스타일과 똑같은 이용형태가 계속 진행되어버렸다는 생각이 든다. (이 경우 RecentChanges 가 Main View 가 된다.) (조만간 위키 전체에 대한 링크 구조 분석이나 해볼까 궁리중. 예상컨데, 현재의 ZeroWiki 는 Mind Map 스타일에 더 가까운 구조이리라 생각. (개념간 연결성이 적을것이란 뜻. 개인적으로는 볼땐, 처음의 의도한 바와 다르긴 하다.) --1002'' (DeleteMe ["1002"]의 글을 다른 페이지에서 옮겨왔습니다.)
  • WinCVS . . . . 1 match
          4. 확인을 하면 파일들이 편집할 공간으로 나온다. sourcesafe의 체크인 정도로 생각하면 된다.
  • XMLStudy_2002/Encoding . . . . 1 match
          *유니코드에 대해서 자세히 알고 싶거나 참조해야 하는 경우 : [http://www.unicode.org/]
  • YetAnotherTextMenu . . . . 1 match
         보통 ToyProblems를 내줄 때, 입력양식으로 텍스트 메뉴를 이용하라는 요구사항이 주어지기도 한다. JuNe이 보기에는 이것은 "단견"이다. 학생들은 매번 비슷한 방식으로 텍스트 메뉴 프로그램을 만들 것이고, 매번 거기에 일정 시간을 빼앗길 것이다. 재미있게도 텍스트 메뉴를 사용하는 프로그램을 작성하면, 학생들이 만드는 프로그램 역시 그 메뉴의 구조를 닮는다. 이것은 그다지 바람직하지 않은 경우가 많다.
  • Yggdrasil/가속된씨플플/2장 . . . . 1 match
          * 루프불변식(loop invariant): while문이 그 조건식을 검사하는 매 경우에 대하여 참일 것이라고 가정하는 속성. 처음에 이걸 보고, 이런 개념도 있었냐고 생각했음. 루프불변식은 코드는 아니고 주석에 해당하며, while문이 진행되면서 while문의 제일 처음과 끝에서 루프의 내용이 의도한 대로 돌아간 건지를 정의한 문장이다.(말로 설명하기 애매한 듯...) 하여튼 이것을 쓰는 이유는 루프문을 제대로 설계하기 위해서. 아래의 코드는, 책에 있는 코드로, 불변식의 예이다.
  • ZP&COW세미나 . . . . 1 match
          * 참가자를 좀더 고려했으면 좋았을 것이다. 방학 내내 로보코드 폐인이 되지 않을까.
  • ZPBoard/HTMLStudy . . . . 1 match
          * ㅋㅋㅋㅋ 그래도 쉽지는 않을껄...^^ --["상규"]
  • Zero,One 위키 통합에 대한 토론 . . . . 1 match
         위키의 활성화를 위해 분리하였으나, 그리 효과는 크지 않은것 같습니다. 확인해본결과 중복된 페이지가 많지 않아, 적절히 통합가능 합니다. 어떻게 할까요?--NeoCoin
  • ZeroPage/임원/회의/2011-02-13 . . . . 1 match
          * 다른 형태로 작성하였을 경우 위키에 옮기는 것을 권장한다.
  • ZeroPageSeminar . . . . 1 match
         앞으로 계획되어 있는 세미나 입니다. 자세한 사항은 세미나별 페이지에서 확인하세요.
  • ZeroPageServer/BlockingUninvitedGuests . . . . 1 match
         제로페이지 위키의 RecentChanges 를 보면 가끔 쓰레기 페이지가 생성이 되는 경우가 있는데, 매번 수작업으로 페이지를 삭제해야 하는 번거로움이 있다. 이를 서버 또는 위키위키 자체가 막아주는 방법에 대해서 토의해 보는 페이지.
  • ZeroPageServer/CVS계정 . . . . 1 match
          1. [Eclipse]나 여타 CVS 클라이언트로 접속해서 확인한다.
  • ZeroPageServer/FixDate . . . . 1 match
         로 확인할수 있다.
  • ZeroPageServer/UpdateUpgrade . . . . 1 match
         확인하면서 업그레이드 하고 싶다면
  • ZeroPageServer/계정신청방법 . . . . 1 match
          ZeroPageServer 페이지에서 계정신청상황,질문답변 확인 가능
  • ZeroPageServer/계정신청상황2 . . . . 1 match
          * 신청 상태 ( 신청하는 곳이 아닙니다. 확인을 위해 상태를 기록하는 곳입니다. )
  • ZeroPage성년식/거의모든ZP의역사 . . . . 1 match
          * 이 항목은 zeropage/history 같은 이름의 문서로 바꾸는 것도 나쁘지 않을것 같네요. - [안혁준]
  • ZeroPage회칙토론 . . . . 1 match
         각 항목에 몇조 몇항을 두는 이유는 index가 용이하라고 있는것이겠지만, 이 상황에 경우는 그리 필요없을것이라 생각함.--석천
  • ZeroWiki/Mobile . . . . 1 match
         모바일 환경에서 열람만 가능할 것인가? 편집도 가능하게 할 것인가? 편집을 할 경우 편집 도구라던가 [AJAX]라던가 어떻게 해야 하나 고민이 있음
  • [Lovely]boy^_^/Arcanoid . . . . 1 match
          * 전자의 코드에 억매이는거 같은데, 전자의 코드의 전제가 여러명이 동시에 그릴려고 달려들때의 상황으로 생각하자. gdi에서는 event driven 이기 때문에 모든 책의 예제들이 항상 그런 경우를 상정하고 바로 이전의 객체로 그리기 상태로의 복귀를 전제로 하여 작성되어 있다. 하지만, 네가 그리고자 하는 영역이야 계속 하나로 선택되어 있어도 아무 상관 없는걸. CPen 이 어디로 도망가는 것도 아니고 말이지.
  • [Lovely]boy^_^/USACO/BrokenNecklace . . . . 1 match
          * 전혀 생각도 못한 경우가 튀어나와서 그걸 생각 못해준게;;
  • cheal7272 . . . . 1 match
         DeleteMe ) * 를 ★ 로 바꾸시는게 더 폼나지 않을까요?;; --["neocoin"]
  • eXtensibleStylesheetLanguageTransformations . . . . 1 match
         XML+CSS 로는 데이터의 바꾸는 것이 불가능하지만 XSLT를 이용할 경우 아예 XML 구조 자체를 변경하는 것이 가능하다. - [eternalbleu]
  • erunc0/XP . . . . 1 match
         '경험들' 로 친다면 오히려 Installed 가 맞는 선택일 것 같은데. --a 중간중간 실제 했었던 일들 이야기도 있었으니까 (RonJeffries 와 Chet 의 Pair 등) 뭐 암튼 적당하게 속도를 맞춰서 읽되, 한국어판 책의 서문 대로 '각 Practice를 극한까지 실험해보길'. 개인적으로 'Installed 가 추상적이다' 라는 말에는 반론 (Explained 라면 모를까..) 지금 XP 를 실천하는 중인 사람들을 보고 싶다면 뉴스그룹이 가장 생생하지 않을까 생각. (또는 http://xprogramming.com 의 글들) --["1002"][[BR]][[BR]]
  • html5 . . . . 1 match
         == 브라우저 지원여부 확인 ==
  • html5/canvas . . . . 1 match
          * video 요소의 DOM 객체를 사용할 경우 drawImage()를 호출한 시점에서 재생되는 프레임을 그려준다.
  • html5/geolocation . . . . 1 match
          ||timeout||위치 정보 확인에 시간제한 설정||
  • html5/outline . . . . 1 match
          * figure 요소를 사용하면 콘텐츠 흐름에서 요소를 분리할 수 있고 필요할 경우 캡션을 붙일 수도 있다.
  • joosama . . . . 1 match
         정작일본의 매스컴에서는 이를 보도 하지도 않을 뿐더러,
  • naneunji/Diary . . . . 1 match
          * 과외를 하나 더 하기루 했다. 윤석이 동생..근데 과연 잘하는 짓일까...???[[BR]] 모아논 돈이 없는데 과외 하나루 생활하기란..정말 고달프다...개강하구 나선 밥값이 모자르지는 않을지 걱정됬는데..과외가 구해져서 다행이라는 생각이 든다,, 하지만 한편으로는 시간표두 빡빡한데.. 개강하구 나믄 이리저리 치여서 과외와 내 공부..둘 중 하나 혹은 둘 다를 제대루 하지 못하게 될까 걱정된다. 이미 그러한 경험을 한 적이 있기 때문에..더더욱..[[BR]] 돈과 시간..이 둘 사이에서 균형을 잡기란 쉽지 않은 일 같다.
  • neocoin/Log . . . . 1 match
          * U- ocu 유닉스 계정 확인
  • pinple . . . . 1 match
          * 소통이 힘듬 -> 답을 확인 하기가 힘든 트렐로 보다는 irc같은 즉답을 할수 있는것을 활용하는것이 나았을수도..
  • study C++/ 한유선 . . . . 1 match
          소스의 경우는 {{{~cpp {{{~cpp }}} }}} 기호로 묶어주시면 보기 편하게 나옵니다.^^ - [조현태]
  • ㄷㄷㄷ숙제2 . . . . 1 match
         또한가지 질문~! 위 소스에서 정답을 맞추지 못할경우 다시 스캔에프로 가서..
  • 갓헌내기C,C++스터디 . . . . 1 match
          * 이주일이상 모임이 없을경우 스터디를 폐쇄한다..
  • 강소현 . . . . 1 match
         ▷ 대인관계 (상대방이 이 타입일 경우 어떻게 하연 좋을까?)
  • 경세준 . . . . 1 match
          * ㅋㅋ새싹 하니까 간당간당하진 않을거야 - [김수경]
  • 계정만들기 . . . . 1 match
         문제점 : 이메일이 차단되는 경우 발생
  • 고전모으기 . . . . 1 match
         CS에 지대한 영향을 미친 대가들의 저작들을 모아보자. 지금 당장은 들여다보지 않더라도 책장에 하나 둘 고전이 늘어간다면 이것 자체가 하나의 [어포던스]가 될 수 있지 않을까. [나를만든책장]에도 끼워넣으면 좋을 것 같다. (단, ZP회비로...=_=;; ). 어디어디서 그러던데 NoSmok:서울서책만사다망한사람 도 있다더라.
  • 고한종/팩토리얼 . . . . 1 match
          * 네. 제가 알기론 지우는 수밖에 없어요ㅜㅜ 다만 지우는 권한이 아무에게나 있는 것은 아니라서 지울 페이지는 DeleteThisPage라고 쓰면 관리자가 내용을 확인한 뒤 지웁니다. - [김수경]
  • 그래픽스세미나/2주차 . . . . 1 match
         || 이상규 || [http://165.194.17.15/~lsk8248/wiki/Seminar/%b1%d7%b7%a1%c7%c8%bd%ba%bc%bc%b9%cc%b3%aa/2%c1%d6%c2%f7/Space.zip Space] 상하좌우 방향키와 +,- 키를 눌러보세요^^ [[BR]] [http://165.194.17.15/~lsk8248/wiki/Seminar/%b1%d7%b7%a1%c7%c8%bd%ba%bc%bc%b9%cc%b3%aa/2%c1%d6%c2%f7/Space.exe Space 실행 파일] [http://165.194.17.15/~lsk8248/wiki/Seminar/%b1%d7%b7%a1%c7%c8%bd%ba%bc%bc%b9%cc%b3%aa/2%c1%d6%c2%f7/ErrorSpace.exe 에러난 Space 실행 파일(멋진 에러..ㅡ.ㅡ)]||
  • 금고 . . . . 1 match
         새로 개발한 금고의 견고함을 측정해서 광고하려고 하는데, 금고 K개를 가지고 이 빌딩의 F층이 몇 층인지를 알고 싶다. 가능한 방법은 임의의 층에서 직접 금고를 떨어뜨리고 그 결과를 확인 하는 것 뿐이다. 물론, 부서진 금고는 다시 사용할수 없으며 부서지지 않았다면 다시 사용할수 있다.
  • 금고/조현태 . . . . 1 match
          그런데 왜 하필 떨어지는게 금고인거지?? (맞으면 아프지 않을까??)
  • 기억 . . . . 1 match
          * Sternberg(1966 ) : 숫자 제시후 조금 지난후 실험자에게 제시 숫자가 이전 제시 숫자 항목에 포함되었는가 확인, 한 항목 증가시마다 40msec씩 증가한다.
  • 김동준/Project/Data_Structure_Overview/Chapter1 . . . . 1 match
         동적으로 배열을 할당하는데에 있어서 1차원, 2차원 다차원의 여러 경우가 있다.
  • 김영록 . . . . 1 match
         [피보나치/김영록] [미로찾기/김영록] [주민등록번호확인하기/김영록] [김영록/연구중/지뢰찾기] [진법바꾸기/김영록]
  • 김정욱 . . . . 1 match
          * 기존 회원과 이름이 같을 경우 자신의 닉네임으로 새 페이지를 만드는 게 어떨까요? - [김수경]
  • 김태진/Search . . . . 1 match
         제목 그대로 서치인데, 배열에서, 찾고자 하는 값이 2개 이상일 경우 모든 값의 위치를 찾아주는걸 해봤습니다.
  • 김희성 . . . . 1 match
          recv함수는 send 횟수만큼 끊어 읽지 못한다는 것을 간과하였습니다. 로그인 과정에서 send가 recv보다 빨리 작동하여 스택에 쌓인 후 하나의 메세지처럼 입력되는 것을 방지하기 위해 수신 확인 신호를 받도록 수정하였습니다.
  • 김희성/ShortCoding/최대공약수 . . . . 1 match
          '''컴파일러''' - gcc 컴파일러는 사용된 function을 확인하여 필요한 header file을 자동으로 include 해줍니다. 또한 gcc 컴파일러는 타입이 선언되지 않은 변수는 int형으로 처리합니다. 이로인해서 main의 본래 형식은 int main(int,char**)이지만 변수형을 선언하지 않으면 두번째 인자도 int형으로 처리됩니다.
  • 나를만든책장/서지혜 . . . . 1 match
          * 개발자를 ''남자친구''로 둔 사람들을 위한 글임. 여자가 개발자일 경우따위 고려 안함^^ 왜 읽었을까. 불쏘시개이다.
  • 넥슨입사문제 . . . . 1 match
          당연히 프로그램. 프로그램을 보내면 회사에서 문제에 나오지 않은 테스트셋으로 프로그램이 맞는 지 확인하겠지. --재동
  • 논문번역/2012년스터디/신형준 . . . . 1 match
         이같은 경우에 개인적인 점들(화살표 그것 스스로에 대해서)은 특별한 중요성을 가지고 있지 않습니다.
  • 누가내치즈를옮겼을까 . . . . 1 match
         소유욕에 이끌리는 삶을 살아가지는 않을것이다. 여기까지 읽었을때 이렇게 반론을 할 수도
  • 답변 및 의견 1 . . . . 1 match
          * 결과를 바로 eclipse 내장된 브라우저로 확인해서 편하고
  • 당신의큰돌은무엇입니까 . . . . 1 match
         최선을 다해서 열심히 사는 것도 중요하지만, 자신의 삶에서 가장 소중한 것이 무엇인지 잊고 살아가는 경우가 많습니다. 그것이 꿈이든 사랑이든 건강이든 가족이든 우선순위를 정해놓고서 이루려고 노력하거나 지키려고 노력한다면, 내 인생의 가치는 더욱 소중해 지겠지요
  • 데블스캠프2003/ToyProblems/Random . . . . 1 match
          b가 -일 경우에는 사용에 주의가 필요합니다..그럼=ㅂ=;; [이진훈]
  • 데블스캠프2003/넷째날/Linux실습 . . . . 1 match
          * wq 저장한 후 종료. 처음 만든 파일의 경우는 wq (파일명)을 써 주어야 한다.
  • 데블스캠프2004/5일간의의미 . . . . 1 match
          * 이슬이: 2학년 되면서 숙제를 혼자서 못 하는 경우가 많았는데, 여기서 공부해서 숙제를 혼자서 할 수 있도록.
  • 데블스캠프2005/금요일후기 . . . . 1 match
          원카드 만들기는 실제로는 두사람이 서로다른 부분을 짜서 전체적인 시간을 줄이는 것이었는데, 대게 같이짜는 경우가 많았다. 그 점으로 미루어 볼때 설명이 잘 전달되지 않은것 같아서, 원하는 점을 명확히 알려줄 필요가 있다고 생각했다.
  • 데블스캠프2005/목요일후기 . . . . 1 match
          (코딩을 순간 놓쳐버린 경우가 많음-코드 업데이트 해주시길)
  • 데블스캠프2005/수요일후기 . . . . 1 match
          아직 학교에서는 배운 분야가 많지 않은데, 데블스 캠프를 통해서 시야가 한 층 넓어진것 같습니다. 이젠 졸지 않을게요 ~ ㅜ
  • 데블스캠프2005/화요일후기 . . . . 1 match
         [남도연]:오늘 크게 2가지를 배우게 되었다. 하나는 알고리즘과 자료구조에 관한 내용이었고 하나는 파이선에 대해 배운 것이었다. 알고리즘과 자료구조는 평소 우리가 수업시간에 들었던 내용이기는 하였지만, 막상 코드로 직접 적용하려니 잘 풀리지 않았다. C코딩을 할때 중요한 것이 알고리즘이라는 것을 또 한번 느끼게 되었다. 아무 생각 없이 코딩을 무작정 하려고 하다가는 크게 낭패를 본다는것을 배웠기 때문이다. 알고리즘은 하나의 계획표라고 볼 수 있다. 하나의 프로그램을 짜기 위한 계획표. 파이선은 C언어와는 사뭇 다른 언어였다. C언어 보다 편리한면이 많아 보이기는 했지만, C언어보다 못한 점도 간혹 보였다. 아직 미숙하기 때문에 딱히 무엇이라 말할 수는 없지만.. ㅋ 오늘 새로운 언어도 배우고 알고리즘의 중요성도 다시금 느끼게 되어 날 샌것이 아깝지 않았지만, 내준 과제 모두를 다 해결 하지 못한 것이 아쉬움이 남는다. 다 해결했으면 더 뿌듯 했을텐데 .. ㅋ
  • 데블스캠프2006/목요일/winapi . . . . 1 match
         남군에게 무러봐라.. 너한테만 나는 에러라고 확인해 줄꺼야. ㅋㅋ ㅡoㅡ - [eternalbleu]
  • 데블스캠프2009/금요일/SPECIALSeminar/송지훈/김홍기/박성현 . . . . 1 match
         1. 기회와 재확인
  • 데블스캠프2009/금요일후기 . . . . 1 match
          * '''서민관''' - 이번 데블스 캠프 전체 중에서 세미나로 꼽자면 추상화 세미나와 함꼐 가장 마음에 들었던 세미나였습니다. 역시 고학번에 사회에서 활동하고 계신 분이라서 그런지 말씀 하나하나가 무게가 있고 날카로운 느낌이 들었습니다. 개발 실력을 늘리기 위해서 피드백과 반복, 학습 목표의 중요성을 말씀하셨는데, 이 세 가지는 앞으로도 항상 머릿속에 넣어둘 생각입니다. 그리고 커뮤니케이션 실력에 상당히 무게감을 두셨는데, 저 같은 경우 그런 부분이 부족한 점이 많았던 만큼 앞으로는 조금 더 사람들에게 다가가고 더 많이 어울리도록 노력해볼 생각입니다.
  • 데블스캠프2009/월요일후기 . . . . 1 match
          * '''서민관''' - 사실 html쪽은 인터넷을 보면서 필요한 자료가 있을 때 소스만 가끔 보는 정도에 그쳤었는데, 이번 기회에 조금 제대로 맛을 볼 수 있어서 괜찮았습니다. 그리고 파이어 폭스와 파이어 버그 같은 경우는 알아두면 나중에라도 html 관련 작업을 할 때 정말 유용하게 쓸 수 있을 것 같네요.
  • 데블스캠프2010/Prolog . . . . 1 match
         그들은 전원이 5명 중 누군가 한 명에게서 돈을 빌리고 있고, 또 다른 한 명에게 돈을 빌려주고 있으며, 같은 상대에게서 빌린 동시에 빌려준 경우는 없다고 한다.
  • 데블스캠프2010/넷째날/후기 . . . . 1 match
          * 웹브라우저로 바로바로 결과를 확인해 볼 수 있어서 재미있었다. 그래서 하다보니 어느새 하라는 걸 안 하고 내가 하고싶은 걸 하고있었던 것은 문제...ㅇ>-< - [김수경]
  • 데블스캠프2010/회의록 . . . . 1 match
          * (전반적)첫 수업에 사람이 없을 경우에 대한 대처가 부족했음.
  • 데블스캠프2011/다섯째날/PythonNetwork . . . . 1 match
          print "Error at Binding"
  • 데블스캠프2012/넷째날/후기 . . . . 1 match
          *[안혁준] - 파일 입출력은 사실 이렇게 하는 경우는 이제는 거희 없지만, 알아두는게 좋은 내용이었습니다. 나중에 다른 언어들의 파일 입출력을 이해하는데 큰도움이 되거든요. 리틀 엔디안과 빅 엔디안의 차이라던가 사용문법의 차이같은것이 있지만 사실 모두 C의 출력을 예쁘게 만들어논거에 지나지 않으니까요. 새내기 분들은 함수를 다외우지는 못하더라도 "아! 파일 입출력은 어떤어떤 방식이 있구나"정도는 숙지하는게 좋을 껍니다. 어찌보면 어려운 내용을 잘 이끌어갔다고 봅니다.
  • 데블스캠프2012/첫째날/배웠는데도모르는C . . . . 1 match
          * 소스코드 화요일까지 올린다고 했었는데 영 시간이 안 나네요. 주말까지 올리겠습니다. 나중에 확인해주세요. - [김수경]
  • 데블스캠프2013/넷째날/후기 . . . . 1 match
          * 전체적인 진행도 그렇고 내용도 그렇고 지금 ZP에서는 보기 힘든 분야가 되어버린(...) 부분을 지원 선배가 센스 있게 다루어 주셔서 좋았습니다. 시간은 다소 촉박했지만 그래도 바쁜 상황에 비해 꽤 매끄럽게 진행을 하시지 않았나 싶습니다. 다만 좀 아쉬운 점이라면 jenkins나 sonar를 쓰는 법도 혹시 다루지 않을까 싶었는데 그 부분이 없었다는 점이겠네요... 개인적으로 관심이 있었는데 ㅠㅠ - [서민관]
  • 땅콩이보육프로젝트2005/개발일지 . . . . 1 match
          * 입력 : 위키에 땅콩 페이지 개설 후 '입력'란에 입력받고 확인을 누르면 입력된다. 내용의 수정의 위해 '수정' 버튼도 존재한다. 그 아래에 같은 형식으로 '가르치기' 도 존재한다.
  • 똥배짱 . . . . 1 match
         [똥배짱]을 부리는 사람을 논리로 설득시키기란 어렵다. 일례로 하루는 내가 축구하러 운동장에 나갔더니 사람들이 야구를 하고 있었다. 야구동아리 끼리 시합을 하는 모양이었다. 야구동아리에서 운동장을 빌렸다는 말에 내가 함께 축구하는 아저씨들도 가만히 앉아서 구경만 하고 있었다. 축구할 사람이 점차 모이자, 우리는 운동장 구석에서 미니게임을 시작했다. 야구동아리에서 제지했지만, 좋은 말로 하면 양해를 구해서 시합 끝날 때까지 미니 게임을 했다. 사실 그 정도 양보하기란 어렵지 않을 수준이었다. 하지만 시합이 끝나고 야구동아리는 수비 연습을 계속했다. 시합이 끝나고 운동장에서 다른 팀과 시합을 할 생각이었던 우리는 [똥배짱]을 부렸다. 야구동아리에서 운동장을 빌렸지만, 우리도 이만큼 기다렸으니 운동장을 써야겠다. 야구공에 맞든지 말든지 우리는 축구 할테니까 너네는 야구 해라. 우리 쪽 아저씨 몇 명과 야구동아리 몇 명이 실랑이를 벌인 끝에 결국 야구동아리가 짐싸서 떠났다.
  • 레밍즈프로젝트/이승한 . . . . 1 match
         프로그램 구조상 오류발견. 500*500정도의 맵에서 단순한 더블 버퍼링의 경우 초당 300만번 정도의 SetPixel이 호출됨-_-ㅋ
  • 레밍즈프로젝트/프로토타입/MFC더블버퍼링 . . . . 1 match
         OnDraw의 경우 도큐먼트 클래스와 연관 될 수 있다.
  • 마방진/Leonardong . . . . 1 match
          else//범위를 넘어가는 경우를 조심해야지...
  • 마이포지셔닝 . . . . 1 match
          * 이책은 글로벌CEO 특강에서 스파이렉스 사코사의 박인순 사장님이 아주 아주 강력하게 추천해서 정현이와 공동 구매 해서 샀다. 아직 도서관에는 안 들어 왔는데 지금 우선 신청은 해놓은 상태다. 우선 전체적인 느낌은 보통의 성공학, 자기계발서는 어찌 좀 뜬구름 잡는듯한 내용도 많았는데 이책은 아주 현실적으로 접근하고 있다. 처세서, 성공학 같은 책중에서 이책이 가장 솔직하고 정확하게 그 길을 제시해주는거 같다. 저런 책에 관심이 있다면 이 책을 꼭 읽어 보는게 좋다. 누군가와 협력하고, 누군가의 장점을 알아볼수 있고, 좋은 아이디어를 알아볼수 있는 능력이 정말 핵심인거 같다. 그리고 혼자 잘나서 다 할수 있다는 생각을 가지면 절대 안되고, 자신이 올라탈 말이 있어야 한다. 그리고 2막은 없다는 이야기가 있는데 1막에서 성공하였다고 해서, 그 똑같은 일을 그 회사 나와서 다시 다른 회사 차려서 해서 성공하는 경우는 거의 없다. 그것은 자기 자신이 시기를 잘 만나서 성공한게 아니라 자기가 잘나서 성공한거라는것을 대중에게 보여주고자 하는 자아 때문인데, 그런 자아를 가지고서 다시 성공할 수도 없다. '수로부여'라고 자신이 한번 잘되었던 일이 있으면 계속 그런식으로 일을 하는것을 말하는 특성이 있는데, 두번째로 할때도 첫번째것이 성공하였다고 그런식으로 똑같이 해서 어떤 경쟁력도 생길수 없다.
  • 무엇을공부할것인가 . . . . 1 match
         전산학을, 프로그래밍을 공부하는 사람이라면, 만약 내가 지금 배우는 대부분의 지식과 기술들이 내가 졸업을 하고 회사에 입사를 할 약 4년(혹은 병역을 마치는 경우 6년) 후에 쓸모없어 진다면 어떨까 하고 생각을 해 볼 수 있겠죠. 오늘 내가 밤샘을 하고 고민을 하면서 내가 사용하는 특정 도구의 한계를 우회하기 위해 기발한 방법을 짜내면서 얻는 지식은 4년 혹은 6년 후에 어떤 가치가 있을까요? 그 노력에 비해 얼마나 가치가 있을까요? 만약 그런 과정을 통해 어떤 지혜를 얻을 수 있다면, 좀 더 효과적이고 경제적인 방법은 없을까요?
  • 문자반대출력 . . . . 1 match
          * C 에도 라이브러리로 문자열 반전 시켜주는 함수를 제공합니다. strrev()라는 함수를 사용하면 '\0'바로 전 글자부터 거꾸로 만들어주죠. 물론 ANSI 표준은 아니고 Semantec, Borland, Microsoft 에서 제공하는 컴파일러의 경우에 자체 라이브러리로 제공합니다. 이식성을 생각하지 않는 일반적인 코딩에서는 위에 나열한 컴파일러를 이용한다면 사용할 수 있습니다. - 도현
  • 문제풀이/제안 . . . . 1 match
          * 하지만 지나치게 높거나 낮은 수준의 문제가 업로드 되었을 경우. 의견을 조율하여 새로 올립니다.
  • 반복문자열/허아영 . . . . 1 match
         거기다 지역변수로 하면 각 함수에 넣어버리니 수정하기가 힘들지 않을까 하는 생각에 그냥 해버렸건만..;;)
  • 방울뱀스터디/Thread . . . . 1 match
          값을 갱신하려 하는 중간에 다른 스레드로 교체되면 바르지 못한 정보가 생길경우가 있기 때문이다.
  • 변준원 . . . . 1 match
          if(matrix[x][y]==0) //자리 확인
  • 빵페이지 . . . . 1 match
          * visual c++ 옵션에서 format -> 폰트 설정을 다른것으로 바꿔 보세요, 다른 툴의 경우 이런식으로 해결이 됐습니다. - 민수
  • 빵페이지/마방진 . . . . 1 match
          오른쪽 위 대각선의 칸에 숫자가 있을경우 아래로 이동합니다. 다시 오른쪽 위 대각선으로 이동합니다.
  • 삼미슈퍼스타즈의마지막팬클럽 . . . . 1 match
         제목은 한겨레신문에서 수도 없이 보았지만 이제서야 읽었다. 재밌어서 깔깔 웃었다. 1할 2푼 5리 슬률로 살아가는 모든이들에게, 어쩌면 필요없는 조언일지도 모르겠다. 그보다는 9할 넘는 승률로 살아가는 어떤이들에게 고민을 안겨주지 않을까? 어쨌거나 나에게는 잘 놀고 열심히 살자는 이야기였다.
  • 상협/감상 . . . . 1 match
          * 난 원래 영화 잘 안보는 스타일 이지만, 마음도 심난하고 해서 컴퓨터로 이 영화를 보게 되었다. 처음 부분에서는 좀 황당한 재미가 있었고, 중간 부분으로 가면서 지루해져서 그만 볼까 하는 생각도 했지만, 좀 더 보다 보니깐 재밌어져서 결국 끝까지 봤다. 이 영화를 보고 느낀점은... 음.. 지금 내가 보고 있는 세계도 혹시 환상은 아닐까 하는. ㅡㅡ;; 메트릭스도 생각나고.. 그리고 영화속 주인공이 불쌍해 보였다. 뭐 비록 천재인거 같지만 그렇게 사는것은 별로 유쾌한 일은 아닐거다. 또한 천재적인 사람들은 사회에 잘 적응 못하는건 아닐까 하는 생각도 해본다. 한때 나도 머리가 천재적으로 좋았다면 좋겠다고 생각도 해보았지만, 그땐 이런 생각을 했었다. 머리가 너무 좋다면 노력해서 뭔가를 해내는 그런 쾌감을 얻을 기회가 적을 수도 있고, 주위로부터 한사람의 인격체로 인정되기 보다는 하나의 이용해 먹을 도구로 인식되지는 않을까 하는 생각도 해본다.(그사람 == 머리, 이런 이미지가 생기면 그 사람의 다른 모습은 전혀 관심밖의 일이 될테니..)
  • 상협/모순 . . . . 1 match
          * 나는 이말에 대해서 이 소설을 읽기 전까지는 그렇게 크게 느껴지는게 없었는데.. 소설을 읽고 나서는 이말에 대해서 느껴지는게 많아 졌다. 인생을.. 미리 짜여진 계획대로.. 마음대로.. 된다고 한다면 행복할까? 자기가 하고 싶은것은 다 할수 있고, 못하는게 없다면?? 과연 행복할까~?? 어떠한 불행도 없는 행복을 행복이라고 할수 있을까? 하는 생각을 해본다. 인생이 그렇게 만만하지는 않을거 같고, 그렇게 만만하게 사는게 좋을거 같지는 않다. 나의 인생도 내 계획대로 된것도 아닌고.. 지금 생각하면 그게 더 재밌는 삶을 살 수 있게 만든건 아닌지 하는 생각이 든다.
  • 새싹-날다람쥐 6월 10일 . . . . 1 match
         나중에 거대 프로젝트(오랜시간동안 켜 놓아야 하는 게임 같은 경우)에서는 메모리 반환을 하지 않으면 컴퓨터가 느려지고 가용메모리가 없어져서 메모리를 요청했을 때 메모리가 부족해 프로그램을 다시 껐다 켜야 하는 상황이 발생할 수 있다.
  • 새싹C스터디2005 . . . . 1 match
          조금 힘들지 않을까 생각 되네요;; 시험 진도도 중요하지만 그건 지나치게 빠르지 않나 싶습니다. - 이승한
  • 새싹C스터디2005/선생님페이지 . . . . 1 match
         여러분들보다 조금은 세미나 경험이 많은 사람이기에 한가지 이야기만 드리겠습니다. 세미나를 통해 무언가를 설명할 때 정의(definition)에 대해서 명확하게 알려주도록 노력해 보세요. 여러분이 세미나를 한 후에 신입생들에게 "변수의 정의가 무엇이냐?", "함수의 정의가 무엇이냐?" 와 같은 질문을 한다면 신입생들이 대답을 할 수 있을까요? 혹은 여러분들은 이러한 질문에 명쾌하게 대답을 할 수 있습니까? 어떤 새로운 것을 배울 때 가장 중요한 것은 그것이 어디에 쓰이는 것인지, 그것이 어떻게 쓰는 것인지와 같은 것들이 아니라 그것이 무엇인지를 아는 것입니다. 무엇인지 확실하게 알아야 그 다음을 이해하는데에도 보다 쉽지 않을까요?
  • 새싹교실/2011/AmazingC/과제방 . . . . 1 match
         // 위에 40을 임의의 숫자로 바꾸면 모든 경우의 결과물을 볼 수 있습니다.
  • 새싹교실/2011/Pixar/5월 . . . . 1 match
          * 오늘은 재귀함수 복습하는 차원에서 하노이탑을 같이 구현해봤습니다. 아마 좀 어려웠을거예요. 저도 1학년때 어디서 열심히 보고 짰는데 방학되고 짜보려니 또 생각이 안 나서 헤맸던 기억이 나네요. 오늘 해봐서 알겠지만 완성된 하노이탑 소스코드가 원반 하나하나를 순서대로 옮기는 프로그램은 아니었어요. 그런데도 실행시키니 제대로 움직이는 걸 볼 수 있었죠. 만약 원반 하나하나를 따로 생각했다면 원반이 7개만 되어도 생각하기 너무 어려웠겠지만 n개의 원반을 옮기는 문제를 n-1개의 원반을 옮기는 문제와 n번째 원반을 옮기는 문제로 나눠서 생각하니 간단하게 해결됐죠. 앞으로 학년이 올라가면서 더 복잡한 프로그램을 짜다보면 이런 접근이 얼마나 중요한지 느끼게 될 거예요. 문제를 해결할 때 전체를 보고 단계를 나눌 수 있어야합니다. 우리가 그림을 그릴때 숲을 그린다고 하면 어떤 귀퉁이의 나뭇잎 하나부터 그려나가는 게 아니잖아요. 나무의 배치, 뼈대같은 것을 먼저 그려야 균형잡힌 그림을 그릴 수 있듯 프로그램을 만들 때도 큰 그림을 먼저 생각해볼 수 있었으면 좋겠습니다. 물론 그런 접근이 단번에 몸에 익지는 않을 거예요 ㅋㅋ
  • 새싹교실/2011/學高/5회차 . . . . 1 match
         x=y일경우 x에다 y를 넣는거고, 같다는건 x==y
  • 새싹교실/2011/學高/8회차 . . . . 1 match
          * 음... 헤더는 제가 실수한거구요. 하노이의 탑을 짤 때 제대로 짰는지 확인해보라는 의미로 count를 넣었기 때문에 굳이 함수의 형태를 건들기보단 전역변수를 임시로 선언해서 쓰는것이 더 좋을 것 같아서 이렇게 작성했습니다. - [윤종하]
  • 새싹교실/2011/무전취식/레벨7 . . . . 1 match
          * 지난 시간 복습을 하고! 드디어 그 포인터라는 것을 들어갔습니다..학기초에 소라가 포인터 포인터@.@ 라고할때 그 포인터가 이렇게 일 찍 다가올 줄은 몰랐네요..ㅋㅋㅋ ㅠㅠ오빠가 잘 설명 해주셔서 대충은 알 것같아요 ㅎㅎㅎㅎ 하지만 꽉 잡고 싶어용! 앞으로 3년은 편해진다고 하시기에......ㅎㅎㅠㅠ 이제 첨 시작 한거니까 겁먹지 않을 테여요!! ㅎ ㅔ헹~~!복습을 마니 해서 좋아요!! - [이진영]
  • 새싹교실/2011/무전취식/레벨9 . . . . 1 match
          * 일등이다 야홍호오호오홍호오호옿 ice breaking이 저장되지않았다니... 슬픕니다ㅜ_ㅜ제꺼가 제일길었는데... 숙제 다시 풀어보다가 생각나서 후기쓰려고 들어왔는데 일등이네요 하핫 오늘은 축젠데 노는건 내일부터 해야겠네요ㅠ_ㅠ 지지난 시간 복습을 했습니다. 스택구조에대해서 다시한번 배웠고, 파일입출력을 배웠습니당(사실 복습). 파일은 구조체로 작성되어있는데, 파일이 있는 주소와 파일을 어디까지 읽어왔는지를 기억하는 변수가 포함되어 있다고 배웠어요. 그래서 while문에서 fgets로 읽어온 곳이 null이면 break하라는 if문을 4번거쳐서(파일 내용이 4줄일경우) printf가 4번실행된다는 것을 알았어용.(맞낰ㅋㅋㅋ) 그리고 숙제로 나온 문제를 풀어주셨는데 2번이 어려웠었는데 수..수학때문이었던 것 같네용... 아직까지 dev의 공식을 모르겠어요. 나름 수학열심히했었는데.. 다시해야하나봐요ㅠ_ㅠ 수학이 모든 학문과 연관되어있다니..싫어도 꼭 제대로 공부해야할 것 같습니다ㅜ_ㅜ(그래도 선대는싫어요.)c공부도열씨미하고 수학공부도열씨미할게용 하하하하 후기 길다!! 숙제 도와주셔서 감사합니당♥히히힛 - [이소라]
  • 새싹교실/2011/쉬운것같지만쉬운반/2011.5.3 . . . . 1 match
          5. 잘못된 부분을 지나치지 않을 수 있다!
  • 새싹교실/2011/씨언어발전/3회차 . . . . 1 match
          족보를 풀어보니 이런식으로 문제가 나오는구나 알수있었고 헷갈리던 개념들도 다시 확인할수 있어 좋았다.
  • 새싹교실/2012 . . . . 1 match
          * 내용이 길어지면 지금처럼 나누는 것도 나쁜 것 같진 않아요. 다만 저는 이렇게 나눌거면 관련페이지 링크를 앞부분에 모아두고 큰 제목은 없애는 게 낫지 않을까 싶은 생각은 듭니다. 제목에 딸린 내용이 페이지 링크 하나밖에 없는데 다 제목으로 분리할 필요는 없을 것 같아서요. - [김수경]
  • 새싹교실/2012/AClass/3회차 . . . . 1 match
         큐(Queue) : 프로그램 언어에서 보면 자료 구조의 한 형태로 순차 목록의 한 형태를 뜻합니다. 원소의 삽입은 뒤(rear)에서 이루어지고 삭제는 앞(front)에서 이루어지는 자료 구조를 뜻합니다. 메모리에 적용할 경우 큐는 선입선출 방식을 뜻합니다.
  • 새싹교실/2012/사과나무 . . . . 1 match
          * 오늘은 이소라때리기라는 게임을 했다. 새 강사님과 시작을 해서 어려울 줄 알았는데 정말 친절하게 가르쳐주셨다. 알고리즘대로 구동되는 프로그램이 신기했다. 지난시간보다 더 많은 예약어를 이용했고, rand()라는 것도 사용했다. 가장 신기했던 것은 k와 p를 아닌 다른 문자를 이용했을 대 default문장이 나와 k와 p를 누를 수 있게 유도해준 것이다. 지난시간과 달리 조금 더 긴 프로그램을 짜봤는데 만들어져가는 과정이 눈으로 확인되니까 조금 더 욕심을 내보고 싶다. 앞으로 2탄을 더 복잡하게 만들고 싶다. - [김도익]
  • 새싹교실/2012/새싹교실강사교육 . . . . 1 match
          1. 일주일에 2시간강의를 진행할때 나누어서 자주 만나는것이 더 관계, 대화를 진척시켜 빠른 피드백에 의한 지식 전달에 도움이 된다(출석률이 좋을경우).
  • 새싹교실/2012/새싹교실강사교육/1주차 . . . . 1 match
         3.5 팝업 메시지 다 확인 클릭 -> 부팅되면 설치 마법사가 실행되고 있음 -> 한국어 선택 -> Ubuntu 깔기 선택 -> 체크 박스 체크 안하고 앞으로 클릭 -> 앞으로 또 클릭 -> 지금 깔기(아직 끝난 거 아니다) -> 설치하면서 설정 -> 중요! 글자판 배치에서 한국어(101/104키 호환)을 골라야 한/영 키가 정상 작동함. -> 계정 암호설정은 알아서.
  • 새싹교실/2012/아무거나/3회차 . . . . 1 match
          * 별 찍기 과제 확인
  • 새싹교실/2012/아우토반/뒷반/3.30 . . . . 1 match
         while문의 조건문에는 != 연산자를 사용한다. != 연산자는 양쪽 피연산자가 같은 값을 갖지 않을 때 참이 된다.
  • 새싹교실/2012/아우토반/앞반/4.12 . . . . 1 match
         continue의 정확한 사용법과 switch case에서 'p'와 같은 식으로 받아주게 했을 경우에 인식을 하는지 정확히 모르겠네요.
  • 새싹교실/2012/아우토반/앞반/5.10 . . . . 1 match
         2. 다음 소스 코드를 실행하고 결과를 확인, 이유를 분석해오시오
  • 새싹교실/2012/앞부분만본반 . . . . 1 match
         Ax=b 에서 A : coefficient matrix (계수 행렬) -> mxn행렬일 경우 -> 방정식의 수 : m 미지수의 수 : n
  • 새싹교실/2012/열반/120507 . . . . 1 match
          * A[n]으로 선언할 경우 첨자는 0 부터 n-1 까지 쓸 수 있습니다.
  • 새싹교실/2012/열반/120604 . . . . 1 match
          * 충돌에 대한 구현이 복잡하고, 충돌이 자주 일어나는 경우 성능이 좋지 않다.
  • 새싹교실/2013 . . . . 1 match
          * 미리써도 되지 않을까? 해서 썼다가 한번 날림 젠장 - [고한종](13/03/16)
  • 새싹교실/2013/양반/3회차 . . . . 1 match
          (3.2) 그렇지 않은 경우에는 다음 case 절의 문장들을 실행한다.
  • 새싹교실/2013/이게컴공과에게 참좋은데 말로설명할 길이 없네반 . . . . 1 match
         - 과제: 시간상 확인만 했고 다음시간에 분석해야할것같음.
  • 새싹교실/2013/케로로반 . . . . 1 match
          * 단순 if문만을 사용하여 처리하는 경우에는 논리 연산자의 활용을 할 수 있게 했습니다.
  • 새싹스터디2006/의견 . . . . 1 match
         어느쪽이 되었든 하위페이지는 신중히 만들어야 합니다. 하위페이지는 순간 만들기 쉽지만 갈수록 구조를 바꾸기가 어려워집니다. '''숙제'''로 제로페이지 위키에 있는 페이지를 검색해 보세요. 내용으로 정리할 수 있는 페이지가 있지만, 손보려면 드는 시간이 적지 않을 겁니다. 일일이 페이지를 열어보기 전까지는 그 안에 어떤 내용이 있는지 알 수도 없고요. 또 하위페이지는 링크를 걸기가 더 어렵습니다. 상위 페이지 외에는 그 하위 페이지의 역링크 개수는 0에 가깝습니다. 이를테면 [5인용C++스터디/멀티쓰레드]는 [5인용C++스터디]에서만 링크하고 있습니다. 이러한 현상은 하위의 하위 페이지로 들어가면 더 심해질 것입니다. -- [Leonardong]
  • 성당과시장 . . . . 1 match
         나의 경우 이런 책은 잘 않읽기 때문에 그냥 요점만 알아두는 것을 좋아한다. -_-;
  • 손동일/TelephoneBook . . . . 1 match
         // 확인하기 위한 문장
  • 수학의정석/행렬 . . . . 1 match
         연산이 불가능할 경우 "불가능"이라고 출력을한다.
  • 순차적학습패턴 . . . . 1 match
         '''작가는 서로를 반박하고, 서로의 아이디어를 확장하고 부차적으로 서로를 참조하기 때문에 작품을 연대 순으로 학습하지 않는 경우 독자는 중요한 연결고리를 놓치거나 오해하기 쉬워진다. 일부 작품은 순서대로 학습하지 않으면 절대 이해할 수 없을 수도 있다.'''
  • 숫자야구/강희경 . . . . 1 match
         이 코드를 다시한번 [리팩토링]하여 보세요. 프로그램을 조금 더 이해하기 쉽게 그리고 코드의 모양을 좀더 이쁘게 바꿀 수 있지 않을까요? 이미 작성했던 코드를 다시 작성한다거나, 기존에 자신이 작성했던 코드를 [리팩토링]한다면 많은 것을 얻을 수 있을 것입니다. [임인택]
  • 스터디지원 . . . . 1 match
          * 회식지원에 위키에 해당 일자에 스터디를 진행한 기록도 있어야하지 않을까? -[김태진]
  • 시간관리하기 . . . . 1 match
         ["1002"] 의 경우 치열하게 살고 있진 않지만, 몇몇개 해본 일들이 있다. 처음에는 크고 거창하게 계획 세우고 일들 순위 매기면서 하는 스타일을 시도했었는데, 요사이는 작고 간단하며 실천적인 행동들을 생각하려고 노력한다. (하지만, 여전히 게으르다;)
  • 신입생교육 . . . . 1 match
         혹시 하는 기우에서 말해두는데, 이 모델을 한 명의 선배가 슈퍼바이저 역할을 하고 대여섯 명의 후배들에게 과제를 주고 일주일 후에 확인하고 하는 식의 스터디와 혼동을 하지 말아야 합니다. 제 생각에 이런 도제살이 모델에서는 한 프로젝트에 참여하는 인원구성이 선배가 4나 3, 후배가 2 정도면 어떨까 합니다. 또 프로젝트 선정시 선배 자신이 열정을 느낄만한 주제여야 합니다. 그게 아니면 수동적이 되기 쉽습니다.
  • 실습 . . . . 1 match
         16) Error를 모두 잡은 후, Ctrl+F5를 눌러 실행하여 본다.
  • 실시간멀티플레이어게임프로젝트 . . . . 1 match
         등입니다. 여기에서 파이썬이라는 언어에 대해 얻는 것은 다른 것들에 비해 상대적으로 그다지 크지 않을 것입니다. 이번 경험은 어떤 언어이냐가 중요하지 않습니다. C++이나 자바를 사용할 수도 있다는 말입니다. 하지만 그렇게 하지 않은 이유는, 그런 언어들을 사용하면 "언어(혹은 라이브러리 API)"라는 문제가 더 커져서 소위 배보다 배꼽이 커지는 현상이 생기기 쉽기 때문입니다.
  • 아직도가야할길 . . . . 1 match
          * 어떠한경우든 문제를 정면으로 다루어야한다. 그래야 정신적 성장을 한다. 즐거운 일은 나중에 하자.
  • 안혁준/class.js . . . . 1 match
          throw new SyntaxError("이미 superclass를 가지고 있습니다.");
  • 알고리즘8주숙제 . . . . 1 match
         다음과 같이 input 이 들어온다고 가정합시다. 여기서 맨 앞 하나의 정수는 노드의 수를 나타냅니다. 그 밑으로 노드에 대한 정보가 입력됩니다. 노드의 처음은 key 값이고, 그 다음 값은 확률(확률은 1이상의 정수로 임의로 입력) 입니다. 하나의 노드를 검색했을때 실패하는 경우는 없다고 가정합시다. 최적의 평균탐색시간을 가지는 이진탐색트리를 구현하고 다음을 출력하시오.
  • 언제나왼손에는책 . . . . 1 match
         들고 다니면서 못 읽는 경우가 많다.
  • 여사모 . . . . 1 match
          int * a = new int[b]; // 이와 같은 경우에는 원하는 값을 할당받아 사용하므로 올바르게 실행된다. */
  • 영호의바이러스공부페이지 . . . . 1 match
          jc loc_5 ;error? then quit
         If there is an error in executing this function the carry flag will be set,
         and AX will contian the error code. If no error is encountered
         on error
         AX = Error Code and flag is set.
          mov ah,09h ; Use DOS to print fake error message
  • 오픈소스검색엔진Lucene활용 . . . . 1 match
         || 페이지 변경 사항이 있을 경우 인덱스에 변경 사항 반영 ||
  • 우주변화의원리 . . . . 1 match
          * 서론 : 이책은 작년 2학기때쯤에 산거 같다. 그때 과외 교재 사러 갔다가 책이나 하나 살까 하는 생각을 했다.(평소에 그냥 이유없이 책 사는 경우는 한번도 없었던거 같다. ㅡㅡ;;) 그때 눈에 띈게 이책이다. 내가 원래 철학이나 동양 사상에 관심이 평소부터 있었는데 이 책을 보니 웬지 모르게 그냥 끌려서 사게 되었다. 그런데 문제는 이 책을 사놓고 한 40쪽 정도 읽고 나서는 한번도 안읽었다. 지금까지 ㅠㅜ. 그런데 다시 읽게된 동기는 www.no-smok.net 에서 창준 선배님이 이책을 추천하는 글을 보고 나서, 괜찮은 책인가 보다 하는 생각이 들어서 한번 읽어 보아야 하겠다고 결심을 하게 되었다. 그런데 이책은 읽는데 이기적인 유전자보다 더 오래 걸릴거 같다. 그래서 아예 하루에 1~2페이지씩 읽고 그 읽은거에 따른 감상을 여기에 몇자씩 적어 나가야 겠다. 그게 더 확실할거 같다. 이제부터 채워 나가야지.~
  • 위키설명회2005 . . . . 1 match
          * 백문이 불어일견. 필요할때는 브라우저를 켜서 직접 확인 시켜 주는것도 좋은 방법이라고 생각합니다. - [이승한]
  • 위키요정 . . . . 1 match
         위키를 옳은 방향으로 이끌어 나간다는건 힘든일 같습니다. 수십페이지를 올바른 방향으로 수정하면서 드는 생각은 이렇게 했을때 이 글을 쓴사람이 기분나빠서 위키를 쓰는것을 꺼려하지 않을지 걱정되기도 합니다. 내가 올바른 방향으로 생각하는 것이 다른사람에게는 옳지 않은 방향일지를 항상 고민합니다. 하지만 가끔은 리누즈 토발즈 같은 좋은 독재자가 필요한것도 같습니다. - [안혁준]
  • 윤종하 . . . . 1 match
          * 물리엔진 개발보다는 분석이 좋지 않을까? 일단은 엔진의 기본기능부터 분석을 해야 제대로 만들 수 있을거 같은데... - [박성현]
  • 음계연습하기 . . . . 1 match
         프로그래밍도 이러한 음계(etude-연습곡)연습을 꾸준히 해서 장인(Craftsman)으로 발전해 나가는 길이 있지 않을까?
  • 이승한/PHP . . . . 1 match
          <input type="submit" value="확인">
  • 이승한/자전거여행/완료 . . . . 1 match
          * 자전거 타는 테크닉도 중요하지만 수리 상태에 따라 상당히 많이 다르다. 타이어는 예사고 기름칠이 잘 안된 체인의 경우에는 가끔씩 체인이 끊어지는 사태도 벌어지고. 브레이크. 휠. 엎어지기라도 해서 기어가 망가지면 난감하기도하고 생각지도 못한 곳곳에서 문제가 계속발생한다.
  • 이영호/개인공부일기장 . . . . 1 match
         군대를 가지 않을 생각이었는데. 많은 생각이 든다.
  • 임시분류 . . . . 1 match
         일회용 페이지들에 대한 분류.DeleteThisPage 의 대상이 될수 있는 페이지다. 경우에 따라 보존될 가능성도 있는 페이지들. 가령 설문조사등은 일회용이 될수 있지만 일종의 자료로 남을 수도 있다. DeleteThisPage 가 아니라면 추후 재분류 대상 페이지.
  • 임인책/북마크 . . . . 1 match
          * [http://sourceforge.net/projects/v4all/ eclipse gui designer] -> 이것보다는 [http://www.eclipse.org/vep/ 이게]더 낫지 않을까..-_-a
  • 임인택/CVSDelete . . . . 1 match
          except os.error:
         나의 경우는, 1. 탐색기에서 해당 디렉토리에 CVS로 화일검색(하위폴더 포함) 2. 전체 선택 3. 삭제 --[1002]
  • 임인택/RealVNCPatcher . . . . 1 match
          - 윈9x 일 경우에는 어쩌지? -> 쌩까...? -_-;;
  • 자유로부터의도피 . . . . 1 match
          * 우리는 우리 문명이 강요하는 획일화, 자동인형중 하나로 자신을 포함시킴으로써 안정을 얻는다. 즉 거대한 것과 자신이 하나가 되었다고 느끼는것이다. 하지만 대가는 크다. 그 대가는 자아포기.... 저런 획일화, 자동인형에 동참하지 않을때 심각한 외로움, 고독감에 부딪히게 된다. 어떤것을 택해야 할까... 저런것들에 구속되지 않는 사람들이 부처님이나 예수님처럼 깨닳은 사람들인가 보다.
  • 장창재 . . . . 1 match
          * 막연히 검색하라는 것보다, 검색보다는 따라갈수 있는 길을 안내해드리는 것이 더 좋지 않을까요? ZeroWikian 에서 ZeroWiki를 참고하시거나, ZeroPagers 를 참고하세요. --NeoCoin
  • 정규표현식/소프트웨어 . . . . 1 match
          * 확인해보지는 않았지만, 2010은 되는듯 하다.
  • 정규표현식/스터디/메타문자사용하기 . . . . 1 match
         정규표현식 검사를 할때 공백문자를 검색해야할 경우도 있다. 공백문자는 다음과 같이 나타낼 수 있다.
  • 정규표현식/스터디/문자집합으로찾기 . . . . 1 match
          * {{{또한 다음과 같이 [0-9] = [0123456789]와 같이 사용하며 문자 또한 지원한다. 축약법은 하이픈(-)을 붙이는 방법으로 [A-Z][a-z] 이방법은 아스키 코드 방식을 따르며 축약시킬 경우 [a-A]는 역순이므로 되지 않는다. 또한 리스트([])안에서는 또다른 리스트([])와 역슬래시(\), 하이픈(-)을 제외하고는 모두 일반 문자와 같이 인식하므로 특수문자 %&^&#*$ 를 단순히 리스트 안에 나열하는것으로 검색할수 있다 리스트 안에서 리스트([])를 검색하는 방법은 역슬래시를 붙여 이스케이프를 시켜야한다.}}}
  • 정모/2002.5.16 . . . . 1 match
          * 우리 전시회를 대체할 2학기 학술제에 낼 작품에 대해서 얘기해봐야 하지 않을까요? (왠지 이러다가 그냥 묻힐거 같아서..) -상협
  • 정모/2003.5.13 . . . . 1 match
          * 인택이형은 OpenGL의 경우 참석하실 생각이 있다고 하시네요.
  • 정모/2003.9.9 . . . . 1 match
          * 02 중에서 몇 명 참가하고자 하는 사람들이 있는데, 받기로 하였습니다.(회의에 참가할 경우.)
  • 정모/2004.2.3 . . . . 1 match
         == (있을 경우) 추가 안건 ==
  • 정모/2004.9.24 . . . . 1 match
         사고가 났을 경우를 대비 - 매주 목요일 12시(휘동, 수민 희경)
  • 정모/2005.6.27 . . . . 1 match
          * 이번에는 회의 질질 끄는 일이 없었으면 좋을듯. 내가 보기엔 이 안건이면 아무리 오래 걸려도 30분을 넘지 않을것 같음. 일단 정모를 4시에 정해둔걸 보면 회의를 한시간 잡아둔듯한데... - 임인택
  • 정모/2006.1.5 . . . . 1 match
          * 프로젝트 진행상황 ( 2주에 한번 하는게 낫지 않을까요? )
  • 정모/2007.1.29 . . . . 1 match
          선배님들도 더 많이 오시지 않을까??
  • 정모/2007.1.6 . . . . 1 match
          이장길 - 후배의 경우에는 감정이 앞설것 같지만 잘 풀어서 관계를 유지하겠다. 선배가 강하게 나와도 어느정도는 자신의 기준을 지키겠다.
  • 정모/2007.3.13 . . . . 1 match
          = 소모적인 토론을 하는 날과 세미나 하는 날을 나누어서 진행하는건 어떻까(확실한 주제의 회의)? -> 소모적인 토론을 하는 날이면 사람들의 참여가 저조해져서 소모적인 토론이 되지 않을 수도 있다
  • 정모/2007.3.6 . . . . 1 match
         * 풀리지 않은 문제(??)
  • 정모/2011.5.16 . . . . 1 match
          1. 준석선배께서 파이와 꽃을 가져오셔서 서프라이즈 스승의 날 파티를 했습니다. 꽃을 받을때는 다들 오글오글한 표정이었지만 전 조금 오그라드는 한편 즐거웠습니다. 올해로 마지막 새싹교실이라 더 와닿는 파티였어요. 이런 일을 계기로 새싹 교실 선생님으로 참여중인 재학생들도 누군가의 선생님이 된다는 것에 대해 좀 더 진지하게 생각해볼 수 있지 않을까 합니다. 그리고 파이가 정말 맛있었어요!!! 생긴 것 부터가 ''나 비싼 파이요''하고 말하는 듯한 파이였습니다ㅋㅋㅋ 아 그리고 샴페인이 탄산음료인 건 충격적이었어요. 그럴 줄 몰랐거든요… - [김수경]
  • 정모/2011.5.2 . . . . 1 match
          * 난 좋아는 하는데 잘 하지는 못하는 분류에 속해 있구나 // OMS 때 했던 이 부분은 '''사람'''이 이런 4가지 부류로 나누어진다는게 아니라 '''능력''' 이야기임. 좋아는 하는데 잘 하지는 못하는 것도 있고 좋아하면서 잘 하는 것도 있고 좋아하지도 않을 뿐더러 잘 못하는 것도 있다는 것이지. 순의가 좋아하면서 잘하는 것도 있잖아'ㅅ')r - [Enoch]
  • 정모/2011.5.9 . . . . 1 match
          * OMS 재밌었습니다. 스타1 유즈맵을 즐기는 저로서는 스타2의 무한한 가능성을 엿본듯한 -_-;; 비록 아직은 버그투성에 애로사항이 있더라도 좀더 지나고나면 똑똑한 게임개발툴이 나올 것 같네요. 월드아이티쇼.. 저는 아마 불발될 거 같습니다. ㅜㅜ 수금은 수업 때문에 안되고 목토는 일이 있어서 에구; 담주 OMS 준비를 제대로 할 수 있을까 걱정입니다;; 구글신 찬양과 함께 미래의 안드로이드와 클라우드 서비스에 대해 할까 하다가.. 준비할 시간이 많지 않을거 같으니 아마도 경시대회 관련 주제로 준비될거 같습니당.. - [정진경]
  • 정모/2011.7.11 . . . . 1 match
          * DP 세미나 참여 때문에 일찍 끝나서 뭔가 약간 아쉬웠습니다. 데블스캠프도 마치고 새로운 스터디/프로젝트도 시작되어서 사실 공유할 수 있는 것들이 많았을텐데 (저 같은 경우 DB2 Certi Program에 대해 좀 공유하고 싶었고..) 다음주를 기약 해야겠어요. 태진이의 OMS는 MacBook의 디스플레이가 원활했다면 keynote로 더 좋은 presentation이 될 수 있었을텐데 아쉬웠을 것 같아요. 본의 아니게 (주제가 Apple이다 보니) 선배님들이 많이 (농담조로) 디스했는데 발표는 좋았답니다. 역시 태진이는 기대치를 높여주는 친구에요. - [지원]
  • 정모/2012.10.15 . . . . 1 match
          * 휴지통이 꽉 차 있을 경우 먼저 비워줍시다.
  • 정모/2012.10.8 . . . . 1 match
          * 프로젝트의 경우 신청서 양식을 만들어 드릴테니(...) 신청하시면 판단해서 장학금을 지금할 계획입니다.
  • 정모/2012.2.24 . . . . 1 match
          * 신입생들 대상으로 하는 얘기 맞지? 새싹 OT 하는 날 합쳐서 간단한 소개는 필요하지 않을까? 따로 하는 건 좀 오버인거 같구 ㅋㅋ 주로 새싹 소개하면서 ZeroPage 설명부터 하고 시작했던 것 같아. 그리고 간단한 세미나(혹은 새내기에게 하고싶은 말 세션) 같은 것도 함께 했던 적이 많고. - [김수경]
  • 정모/2012.8.1 . . . . 1 match
          * 프로젝트 등으로 회원이 데려온 경우 회원이 책임
  • 정모/2012.8.22 . . . . 1 match
          * 1년 반 이상 안 보인 회원들을 대상으로 더 이상 학회 활동을 하지 않을 회원들을 은퇴 또는 휴면 처리
  • 정모/2012.8.29 . . . . 1 match
          * 한 가지 방법은 [https://trello.com/board/4f772fd6de39daf31f04799f ZeroPage Board]의 List나 Label로 관리하는 방법이고, 또 한 가지 방법은 [https://trello.com/zeropage ZeroPage Organization]의 Board로 따로 관리하는 방법입니다. 후자를 선택할 경우 ZeroPage Board가 덜 복잡해지는 대신 따로 Member를 추가해야 한다는 단점이 있습니다. 의견주세요. - [변형진]
  • 정모/2013.4.15 . . . . 1 match
          * 10명은 가야 하지 않을까?
  • 정모/2013.5.6 . . . . 1 match
          * 만약 1팀이 선발된다면 쿼드콥터로 가게 되지 않을까...
  • 정모/2013.8.12 . . . . 1 match
          * 개발기기가 뭐뭐 있는지 홈페이지 게시판에 공지로 올려 놓는다던지 한다면, 사람들이 인지할 수 있는데 도움이 되지 않을까 합니다만 - [권순의]
  • 정모/2013.8.19 . . . . 1 match
          * 아두이노와 같은 경우에는 현재 보유중인 것만으로는 부족합니다. 키트로 팔긴 하지만, 가격이 비싸기 때문에 필요한 부품만 낱개로 사는 것이 좋습니다.
  • 제12회 한국자바개발자 컨퍼런스 후기 . . . . 1 match
          마지막으로 Track 4에서 한 반복적인 작업이 싫은 안드로이드 개발자에게라는 것을 들었는데, 안드로이드 프로그래밍이라는 책의 저자인 사람이 안드로이드 개발에 관한 팁이라고 생각하면 될 만한 이야기를 빠르게 진행하였다. UI 매핑이라던지 파라미터 처리라던지 이러한 부분을 RoboGuice나 AndroidAnnotations를 이용해 해결할 수 있는 것을 설명과 동영상으로 잘 설명했다. 준비를 엄청나게 한 모습이 보였다. 이 부분에 대해서는 이 분 블로그인 [http://blog.softwaregeeks.org/ 클릭!] <-여기서 확인해 보시길...
  • 제로위키이용의어려움 . . . . 1 match
         어렵다는 것은 위키의 사용이 어려운것이 아니라, 위키를 공동체가 사용할때의 생기는 예절과 규칙에 새로운 사용자가 적응하면서 느끼는 어려움일 것입니다. 계속 이렇게 가면, 우리가 다른 나라의 말과 문화를 배우는 것에 비견될수 있지 않을까요?
  • 조윤희 . . . . 1 match
          * 재민이형 따라하기인가?ㅡㅡ;우주정복하기가 쉽지 않을 텐데?ㅋㅋ준회원으로서 준회원된거 축하다~ -[Leonardong]
  • 조현태/놀이/미스틱아츠 . . . . 1 match
          처음에는 아무생각 없이 만들면 되지 않을까 하는생각에 만들기 시작했다.
  • 조현태/놀이/시간표만들기 . . . . 1 match
          * 커플을 위한 최고 싱크로율 시간표 생성기능... (대신 양쪽의 모든 경우를 탐색해야하니 무지 느릴꺼라는.. 사랑은 인내인 것이다 ㅡㅡV)
  • 조현태/놀이/지뢰파인더 . . . . 1 match
          ㅋㅋ 우리 자바 공부해서 뭔가 프로그램 만들어 보지 않을래? 겨울방학 때 ㅋㅋㅋ --아영
  • 졸업논문/결론 . . . . 1 match
         웹2.0은 웹을 플랫폼으로 생각한다. 플랫폼이 바뀌면 언어도 바뀐다. 웹 2.0이후에는 변화가 더욱 빨라질 것이고, 변화에 알맞는 새로운 개념과 기술과 언어가 생겨날 것이다. 하지만 기존에 널리 사용하던 기술은 변화를 맞더라도 쉽게 자리를 내주지는 않을 것이다. 따라서 변화를 만들어가는 입장에서는 기존 플랫폼, 기술, 언어와 연동할 수 있는 연결고리를 만들어서 기존의 것은 그대로 사용하면서 더 나은 것을 보여주어야 한다. Django의 사례는 기존 데이터베이스를 그대로 사용하면서도 사용자에게는 추상화된 데이터 저장고를 제공하는 변화의 연결고리를 보여주고 있다.
  • 주민등록번호확인하기/김영록 . . . . 1 match
         [LittleAOI] [주민등록번호확인하기]
  • 주민등록번호확인하기/김태훈zyint . . . . 1 match
         [LittleAOI] [주민등록번호확인하기]
  • 주민등록번호확인하기/문보창 . . . . 1 match
         [주민등록번호확인하기] [LittleAOI]
  • 주민등록번호확인하기/정수민 . . . . 1 match
         [LittleAOI] [주민등록번호확인하기]
  • 주요한/노트북선택... . . . . 1 match
          나같은 경우에는 [http://kr.dcinside14.imagesearch.yahoo.com/zb40/zboard.php?id=notesell nbinsde노트북중고] 에서 중고 매물로 소니바이오 S38LP를 158만원에 샀는데,, 아는 선배는 같은것을 새거로 290만원 가까이 주고 샀었다는 말을 주고 보람도 있었음,,
  • 즐거운공부 . . . . 1 match
         ["상협"]이도 지금 방학때 하는 것들이 즐겁다. 자기가 하고싶은것, 자기가 만들고 싶은것을 만들기 위해서 어느 일정한 학습의 정신적 고됨이 있지만, 그후에 이것을 통해서 만들고 싶은것을 실제로 만든다는 것이 신기하고 즐겁다. 이렇게해서 눈으로 확인하는것, 그리고 이것이 다른 사람도 즐겁게 해줄수 있다는것, 이모든것이 나를 즐겁게 한다는것이 좋다.
  • 지금그때 . . . . 1 match
          * 지금그때는 단지 고학년이 저학년에게 경험을 나누어주는 정도의 행사는 아니라고 생각합니다. 마치 개구리 올챙이적 시절 기억못하듯이, 그때 궁금해 했지만 지금은 왜 궁금했는지 조차 모르는 그런것, 지금과 다르게 생각했던 그시절 기억들. 그런것을 고학년도 경험을 할 수 있는 기회되지 않을까요?? 때로는 우리가 조언해 주고 있는 사람들이 가지고 있는 신선한 질문들은 자신을 자신의 일을 한번 더 돌아볼수 있게 만드는 기회를 주기도 하지 않나요?? - 이승한
  • 지금그때2003/선전문 . . . . 1 match
         충실한, 풍요로운 생활을 할 수 있지 않을까요?
  • 지금그때2003/후기 . . . . 1 match
         어제는, 말씀드렸다시피 희망과 절망을 동시에 느꼈습니다. 이렇게 좋은 자리에 신입생들이 20명 남짓 왔다는 점이 절망이었습니다. 사실 애초에는 그 정도 인원을 대상으로 계획했지만 내심 더 많이 올 것을 예상했습니다. 오히려 너무 많이 오지 않을까 걱정을 해서 가능하면 광고수준을 낮추라고 주의까지 주었습니다. 희망은 20명 정도가 왔다는 것이고, 이런 행사를 기획하고 실행했다는 점입니다 -- 희망이 있습니다. 다른 학교 학생들이 중앙대학교 컴퓨터 공학과를 엄청나게 부러워한다는 사실을 아십니까.
  • 지금그때2004/전통과사유20040329 . . . . 1 match
          * 5:30 신피 모임, 칠판있는 곳으로 이동, 자료확인(4413)
  • 지금그때2004/토론20040331 . . . . 1 match
          * 강의실 홍보 - [지금그때2004/홍보] 에서 홍보 시간 / 홍보 도우미 확인.
  • 지금그때2004/홍보 . . . . 1 match
         '''필수 : 강의실 위치 확인'''
  • 지금그때2005 . . . . 1 match
         지금그때의 의미를 담은 자료집과 질문릴레이에서 좋은 내용을 받아 적을 수 있는 종이. 그리고 OST를 간단하게 받아 적을수 있는 종이를 나눠준다면 좋지 않을까요?? - 이승한
  • 지금그때2005/리허설 . . . . 1 match
         앞에는 저희가 생각한 이번시간에는 최소한 이런 이야기는 꼭 나왔으면 한다는 이야기들을 적어 놓았습니다. 그 이외에 또 질문하고 싶으신 내용이 있으시다면 언제든 나오셔서 질문을 등록하실수 있습니다. 대답에 집중하는 사이에 어느순간 질문을 까먹어 버리는 경우도 많으니까요.
  • 지금그때2005/진행내용 . . . . 1 match
          * 서핑중독 : 파이어 폭스 탭으로 자기가 볼 사이트 들을 미리 띄워 놓고 그 사이트들을 보면서 탭을 닫는식으로 꼭 볼 사이트만 보고, 의도하지 않았던 사이트를 볼 경우에는 새창을 띄워서 본다.
  • 지금그때2005/홍보 . . . . 1 match
         더불어 대학 생활 내내 접해보지 못 할 수도 있는 OST라는 너무도 신기한 토론 방식을 체험할 수 있습니다. 제로페이지에서 국내 대학 최초로 시작했기 때문에 자부심을 가지셔도 좋습니다. 자신이 내성적이라서 토론이라면 듣고만 있지 않을까 생각하시던 분들도, OST를 하면 자신이 얼마나 활발히 토론에 참여하는지 알게 되고 놀라실 겁니다.
  • 지금그때2005/회의20050308 . . . . 1 match
          패스하지 않을 질문으로 만들자. 패스를 하면 엄한 벌칙을 준다.
  • 지금그때2005/후기 . . . . 1 match
          * 처음에는 이게 뭐하는 행사인가 했고, 좀 뻘쭘하지 않을까 했다. 그런데 오늘 이 행사에 참여 해보니깐 상당히 큰 충격을 받았다. 이렇게 자리를 어떤식으로 만드느냐에 따라서 이렇게 훌륭한 토론, 토의, 경험 공유가 가능하구나 하는것을 느꼈다. 이 행사를 통해서 다른 사람들의 경험, 조언, 좋은 얘기를 많이 들어서 너무 좋았다. 정말 좋은 행사라고 생각했다. 그리고 이런 행사를 준비하기 위해서 수많은 회의, 토론을 한 03,04 제로페이지 후배들이 자랑스럽게 느껴졌다. 이런 '지금그때' 행사같은 분위기는 처음 느끼는데, 정말 신선하고 좋은 경험이었다. - [상협]
  • 지금그때2006/세부사항 . . . . 1 match
          * 질문이 생길경우
  • 진법바꾸기/허아영 . . . . 1 match
         안돌려봐서 모르겠지만 말야..ㅎㅎ 왠지... 저기 do~while문안의 i랑 turn..하나로 해도 되지않을까??ㅎㅎㅎ
  • 짜장면 . . . . 1 match
         ... 어떤 글을 쓰더라도 짜장면을 자장면으로 표기하지는 않을 작정이다. 그것도 어른들 때문이다. 어른들은 아이들이 짜장면이라고 쓰면 맞춤법에 맞게 기어이 자장면으로 쓰라고 가르친다. 우둔한 탓인지는 몰라도 나는 우리나라 어느 중국집도 자장면을 파는 집을 보지 못했다. 중국집에는 짜장면이 있고, 짜장면은 짜장면일 뿐이다. 이 세상의 권력을 쥐고 있는 어른들이 언젠가는 아이들에게 배워서 자장면이 아닌 짜장면을 사주는 날이 올 것이라 기대하면서... - 본문중에서}}}
  • 창섭/BitmapMasking . . . . 1 match
          * MFC 의 경우다.
  • 창섭/통기타 . . . . 1 match
          * ZeroPage 중 혹시 관심있는 사람들이 ZeroWiki를 검색엔진처럼 쓸 경우 '통기타'란 말에 걸리도록 :)
  • 책분류Template . . . . 1 match
         [노스모크]에서는 ISBN 링크가 되는 책소개의 경우 링크를 상단에, 서평을 하단에 적는것을 원칙으로 한다.
  • 최대공약수/남도연 . . . . 1 match
          화면 입출력은 메인에서 하고 클래스는 변수로 값을 넘겨받고 변수로 값을 넘겨주는게 좋지 않을까?
  • 최소정수의합/문보창 . . . . 1 match
          * 원래 이렇게 쓰는거 인가요 ? n(n+1)/2 가 n까지 숫자의 합으로 알고 있는데, 코딩할 때 만약에 공식을 모르는 경우는 어떻게 하나요?
  • 최소정수의합/조현태 . . . . 1 match
          └ 이 경우에는 공식을 안쓰는 편이 더 빠르답니다.^_^ 그래도 한번 써보고 싶었어요. 고등학교 수학의 추억이 떠올라서.^_^- 일단 반성..ㅠ.ㅜ 앞으로 가급적 정상적으로 수행하도록 하겠습니다.^^[조현태]
  • 카고컬트과학 . . . . 1 match
          * 가령, 어떤 물리 실험을 한다고 했을 때, 그 실험을 하는 과학자들은 이전에 다른 과학자들이 실험한 내용을 기초로 하여 새로운 가설을 만들려고 한다. 하지만 그 실험이 잘못되었을 경우에는 자신의 가설은 허무맹랑한것이 되고 만다.
  • 캠이랑놀자 . . . . 1 match
          * C++ & Python - 현재 라이브러리들 관계상 C++ 로 구현된 것들이 많은 관계로. 중간에 [1002] 가 Python Wrapper Class 만들기를 시도할 것이긴 함.~ Python 의 경우 이미지 처리에 대해서 prototyping 을 위해 중간에 이용할 예정.
  • 컴퓨터고전스터디 . . . . 1 match
         요즘 전산학과 대학생들이 모여서 리눅스 해킹법이니, MFC API니 하는 걸 같이 스터디하는 것도 나름대로 의미가 있겠지만 컴퓨터계의 고전 하나를 제대로 스터디하는 것은 어떨까 합니다. ''군자무본 본립이도생. 군자는 근본에 힘을 쓰니, 근본이 서야 길이 생기기 때문이다.''라는 말이 논어에 나오죠. 나이가 아직 어리고, 시간적 여유가 있는 때에는 어떤 구체적인 "기술"보다 좀더 일반적이고 보편적이며 이론적인 사유를 훈련하는 것이 좋지 않을까요. 구체적 기술은 거기에 갖혀버리는(Lock-In) 경향이 있습니다. 2-3년 뒤에는 쓸모없어진다든가 하는 것이죠. 하지만 고전은 대부분 앞으로도 10년은 족히 유효한 것들입니다. 꾸준히 재해석될 가능성이 있는 것들이고, 무엇보다 문제의식과 함께 치밀한 사유를 배우는 겁니다. 생각하는 법 말이죠.
  • 컴퓨터공부지도 . . . . 1 match
         Windows 에서 GUI Programming 을 하는 방법은 여러가지이다. 언어별로는 Python 의 Tkinter, wxPython 이 있고, Java 로는 Swing 이 있다. C++ 로는 MFC Framework 를 이용하거나 Windows API, wxWindows 를 이용할 수 있으며, MFC 의 경우 Visual Studio 와 연동이 잘 되어서 프로그래밍 하기 편하다. C++ 의 다른 GUI Programming 을 하기위한 툴로서는 Borland C++ Builder 가 있다. (C++ 중급 이상 프로그래머들에게서 오히려 더 선호되는 툴)
  • 컴퓨터를전공하면서꼭알아야할세가지 . . . . 1 match
         제 소견으로는 컴퓨터를 전공한다면 아마도 다음 세가지는 기본적으로 갖춰야 하지 않을까 합니다.
  • 파스칼삼각형/김영록 . . . . 1 match
         int num_ret(int X, int Y) //재귀호출 1인경우(X=1,X=Y)엔 1을 리턴하는방식
  • 파스칼삼각형/김홍기 . . . . 1 match
          cout<<"파스칼삼각형의 숫자 확인"<<endl;
  • 파스칼삼각형/조현태 . . . . 1 match
          가게일 돕다가 중요한 메일이 와서 확인차 잠시 겜방에 왔더닛..
  • 프로그래밍잔치/Successor . . . . 1 match
         7. 중간 중간 의사소통 디자인 확인 - Ok
  • 프로그래밍잔치/둘째날 . . . . 1 match
          대화 - 4명일 경우 2:2 할건데, Pair 끼리 뿐만아니라, Pair 팀들끼리의 대화도 중요.
  • 프로그래밍잔치/정리 . . . . 1 match
          * 중간에 진행중 간간히 리듬이 끊어짐. 또는, Facilitator 가 질문만 던지고 답을 받은뒤에 제대로 정리를 하지 못함. 그래서 단발성 질/답으로 끝나는 경우 발생.
  • 프로젝트전용위키 . . . . 1 match
         해당 프로젝트의 산출물이 많은 경우 프로젝트 팀만의 [프로젝트전용위키]를 만들어서 프로젝트를 수행하면 공공의 위키보다는 자유로운 분위기에서 집중력있게 프로젝트를 진행할 수 있다. (ex: http://acup.wo.to)
  • 피보나치/김준석 . . . . 1 match
          10을 받았을경우 11번을 돌릴수 있기 때문에
  • 학문의즐거움 . . . . 1 match
         이 책을 읽으면 공부란 무엇인가? 어떤 자세가 바람직한 가에 대한 저자의 생각을 볼 수 있다. 자서전 형식의 수필답게 꼭 이래야 한다는 지침서는 아니라고 본다. 나의 경우 동감이 되는 부분도 있었지만, '''이건 좀 아닌 것 같은데...'''라는 부분도 있었다. '''문제와 함께 잠자라(Sleep with problem)'''라는 명언은 나의 평소 생각을 잘 나타내주었다. -[강희경]
  • 학술터위키와제로페이지위키링크문제 . . . . 1 match
         A : 그러니깐 프론트 페이지를 만드는것과, 거기에 필요한 아이템들을 제공하는 것이죠. 공동 강의록같은 경우 정통부에서 초기에는 주도적으로 적어 나갈 것이고, 족보 같은것도 수집하여 올려 활성화를 위해서 힘쓸것입니다. 그리고 나머지 부분에서 제로페이지에서 완료된 페이지를 링크걸고자 한다는 이야기 입니다.
  • 학회간교류 . . . . 1 match
          * ZeroPagers 들의 의견을 전체적으로 모아 본후에, 공부할 주제를 정하는게 좋지 않을까요 - [임인택]
  • 학회간교류/08 . . . . 1 match
          * 특정학회의 위키에 종속되는 것 보다는 스프링노트가 낫지 않을까 싶다.
  • 허아영/C코딩연습 . . . . 1 match
         아직도 프로그래밍하는데 세미콜론을 빠트린다던지, scanf 함수를 쓸 때 변수앞에 &을 붙지지 않을 때가 다반사다.
  • 현재 위키에 어떤 습관이 생기고 있는걸까? . . . . 1 match
          + 길에 비유를 했었는데 우리는 0'Wiki를 사용함으로 해서 익숙한 길이 있기 때문에 1'Wiki에도 역시 똑같이 사용하는것 같습니다. 이대로 페이지가 쌓인다면 0'Wiki와 똑같이 되지 않을까 합니다.-[상욱]
  • 화이트헤드과정철학의이해 . . . . 1 match
         우리는 진리를 찾기 위해 오늘도 자신의 공식에 Control Point 를 하나더 추가하고 있는것일지도 모른다. (단, 라그랑주일경우엔 좀 더 정확해보이는 Cubic Spline 으로 페러다임 전환을 하자. ^^;)
  • 환경의중요성 . . . . 1 match
         역사의 연구라는 책을 보면 인간 문화가 발달한 경우는 환경이 아주 좋은, 언제나 맛좋은 과일, 식량을 구할수 있는 열대 지방이 아니라 특정한 자극을 지속적으로 주는 그런 환경에서 인간의 문화가 발달한다고 한다. (지금 환경도 충분히 만족스럽다면 다른 발전적인 것을 할 필요성을 느끼지 못해서 인거 같다) 예를 들면 중국의 황하 는 자주 범람 하는데 그런 악조건속에서 그것을 극복하기 위한 더 큰 문화적 발전이 이루어졌다. 또한 베네치아도 결코 좋지 못한 환경이었지만 오히려 그렇기 때문에서 살아남기 위해서 더 큰 발전을 이루었다. 그렇지만 저런 자극이 일정 한도를 넘으면 그것은 해가 되어서 발전에 방해가 된다. 이런 측면에서 봤을때 제로페이지에서는 여러 자극을 많이 받을 수 있는 환경이지만, 앞으로 더욱 서로 긍정적인 자극을 주는 환경을 만들어야 한다고 생각한다. - [상협]
Found 1296 matching pages out of 7540 total pages (5000 pages are searched)

You can also click here to search title.

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
Processing time 1.6469 sec